{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Python Basics"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Datatypes\n", "\n", "# Integers, Floats, and Complex Numbers\n", "\n", "# Basic operators: \"+\", \"-\", \"*\", \"%\", \"**\", \"/\", \"//\"\n", "# Some operators only work with integers\n", "\n", "print(5 + 4) \n", "print(7 - 8)\n", "print(10 * 6)\n", "print(10 % 7)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Calculate 10 + 3.333\n", "\n", "# Calculate 4 raised to the fifth power\n", "\n", "# Calculate 10 float-divided by 6\n", "\n", "# Calculate 10 integer-divided by 6"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Booleans\n", "\n", "# Boolean literals: \"True\", \"False\"\n", "\n", "# Boolean operators: \"and\", \"(inclusive) or\", \"not\"\n", "print(True)\n", "print(True and False)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Print the result of ~T\n", "\n", "# Print the result of T \u2228 F\n", "\n", "# Print the result of \"~T \u2227 F\""]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": false}, "outputs": [], "source": ["# Strings\n", "\n", "print('abc')\n", "print(\"abc\")\n", "print('a \"quoted\" string' + \"another \\\"quoted string\\\" \" + \"can't\")\n", "print('abc' + 'a')\n", "\n", "print(\"\"\"\n", "         This\n", "         is\n", "         a \n", "         multiline\n", "         string.\"\"\")\n", "print(\"\"\"\n", "         So\n", "         is\n", "         this.\n", "         \"\"\")\n", "\n", "# Multiline strings are functionally multiline comments to\n", "print(\"Code I want to run\")\n", "\n", "'''\n", "print(\"Code I want not to run\")\n", "print(\"More code I want not to run\")\n", "'''"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Write two multi-line strings, concatenate them, and print the result"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Variables (weakly typed)\n", "\n", "x = 17\n", "print(x)\n", "\n", "x = x + 12\n", "print(x)\n", "\n", "y = x / 3.2\n", "print(y)\n", "\n", "z = 'grape'\n", "z = z + str(y)\n", "print(z)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Repeat the the string concatenation exercise above using variables to store each string"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Typecasting\n", "\n", "print(str(5))\n", "print(float(7))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Cast 7.3 to an int and print the result\n", "\n", "# Cast the string \"3.2\" to a float and print the result\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Print statements\n", "\n", "five = 5.333\n", "name = \"bob\"\n", "print(name)\n", "print(name + str(five))\n", "print(name, five)\n", "\n", "#Remove string formatting\n", "print(\"{}\".format(five))\n", "print(\"{}\".format(name))\n", "print(\"{} is {:.0f} years old.\\n\".format(name, five))\n", "print(\"Name:\\tAge:\\n{}\\t{:.1f}\\n\".format(name, five))\n", "\n", "# C-style print strings work as well\n", "print(\"Name:\\tAge:\\n%s\\t%.1f\\n\" % (name, five))\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Lists\n", "\n", "# Creating a list.\n", "\n", "a = [1, 2, 3, 4]\n", "b = ['hello', 1, 2.5]\n", "c = [[1, 2, 3],\n", "     [4, 5, 6]]\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create list 'f' containing the characters of your first name\n", "\n", "# Create a list 'l' containing the characters of your last name\n", "\n", "# Create a list 'name' that contains 'f' and 'l'"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Accessing a list.\n", "\n", "print(a[0])\n", "print(a[-1])  # last element\n", "print(c[0])\n", "print(c[0][2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Index into 'name' and extract the last character of your first name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# What happens if we access an element out of the bounds of our array?\n", "\n", "print(a[4])  # out of range"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# List slicing.\n", "\n", "print(a[1:3])\n", "print(a[1:])\n", "print(a[:2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Slice into 'name' and print the first two characters of your first name and last name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Editing a list.\n", "\n", "a.append(6)  # adds to the end\n", "print(a)\n", "a[4] = 5  # sets item at position 4\n", "print(a)\n", "a.remove(3)  # removes the first 3 in the list\n", "print(a)\n", "del a[2]  # removes the item at position 2\n", "print(a)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Append the first character of your last name to 'f' and print 'f'\n", "\n", "# Remove the character you added and print 'f' again"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Other list functions.\n", "\n", "print(a)\n", "print(len(a))\n", "print(a.index(1))  # the index of the first 3\n", "print(a.count(5))\n", "a.reverse()  # these are in-place operations\n", "print(a)\n", "a.sort()\n", "print(a)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Reverse 'f'\n", "\n", "# Sort 'l'\n", "\n", "# Count the occurrences of \"a\" in your last name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Data is not necessarily copied\n", "\n", "a = [0, 1, 2, 3, 4]\n", "b = a\n", "b[2] = 6\n", "\n", "print(a)\n", "print(b)\n", "\n", "c = a.copy()\n", "c[4] = 7\n", "\n", "print(a)\n", "print(c)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Make a copy of 'l' called 'l_copy' and change the first element of \"l_copy\" to \"z\"\n", "\n", "# Print 'l' and 'l_copy'. Did 'l' change?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Tuples\n", "\n", "a = (1, 2, 3)\n", "b = (['hi', 3], 5, 7)\n", "print(a[2])\n", "x, y = ('diameter', 4 + 5)\n", "print(x)\n", "print(y)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create a tuple 'f_tup' with the characters of your first name.\n", "\n", "# Try to change the first entry of 'f_tub'. What happens?"]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": true}, "outputs": [], "source": ["a[2] = 5  # error: cannot change a tuple"]}, {"cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["{}\n", "{}\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good'}\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good', 'wisdom': 16}\n", "True\n", "16\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good', 'wisdom': 16, 'intelligence': 10, 'charisma': 14}\n", "{'name': 'Monty', 'hitpoints': 23, 'alignment': 'lawful good', 'wisdom': 16, 'intelligence': 10, 'charisma': 14}\n"]}], "source": ["# Dictionaries\n", "\n", "# Map an ID to a value\n", "\n", "# Create an empty dictionary\n", "d = {}\n", "print(d)\n", "d = dict()\n", "print(d)\n", "\n", "# Create a full dictionary\n", "dnd_character = {\"name\": \"Monty\", \"hitpoints\": 23, \"strength\": 12, \"alignment\": \"lawful good\"}\n", "print(dnd_character)\n", "\n", "# Add an entry\n", "dnd_character['wisdom'] = 16\n", "print(dnd_character)\n", "\n", "# Check if a key is in a dictionary\n", "print('wisdom' in dnd_character)\n", "\n", "# Lookup a value\n", "print(dnd_character['wisdom'])\n", "\n", "# Append/update dictionaries\n", "more_stats = {\"intelligence\": 10, \"charisma\": 14}\n", "dnd_character.update(more_stats)\n", "print(dnd_character)\n", "\n", "# Delete an entry\n", "del dnd_character['strength']\n", "print(dnd_character)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create a small dictionary that maps colors to an item you associate with that color\n", "# Experiment with the above operations on your dictionary."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Conditional statements\n", "\n", "if True:\n", "    print('True')\n", "    print('Also True')\n", "    \n", "if False:\n", "    print('False')\n", "    \n", "if True and False:\n", "    print('False')\n", "    print('Also False')\n", "    \n", "    \n", "    \n", "    print('Still False down here')\n", "print('Not in conditional')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Test if a key exists in your dictionary. If it does not exist then add the key and its value to the dictionary."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Be careful with whitespace\n", "\n", "if True:\n", "  print('True')\n", "    print('Tabbing is wrong')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Multi-way decisions\n", "\n", "if 5 > 4:\n", "    print('This will be printed')\n", "else:\n", "    print('This will not be printed')\n", "    \n", "if 5 > 8:\n", "    print('Not printed')\n", "elif 9 > 8:\n", "    print('Print this')\n", "else:\n", "    print('Not this')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Test if a key exists in your dictionary. \n", "# If it does not exist then add the key and its value to the dictionary.\n", "# Otherwise print its value.\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Nested conditions\n", "\n", "if 'abc' == 'def':\n", "    if 5 > 4 and 5 >= 5:\n", "        print('Not here')\n", "    else:\n", "        print('Definitely not here')\n", "else:\n", "    if not True:\n", "        print('False')\n", "    elif 6 != 6:\n", "        print('False')\n", "    else:\n", "        print('Print this')    "]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# For loops\n", "\n", "for name in ['Alice', 'Bob', 'Claire']:\n", "    print('Hello from {}'.format(name))\n", "    \n", "\n", "print('\\n\\n')\n", "\n", "loop_num = 0\n", "ice_creams = ('Chocolate', 'Vanilla', 'Strawberry')\n", "for flavor in ice_creams:\n", "    print('I want some {} ice cream'.format(flavor))\n", "    \n", "    loop_num += 1\n", "    print('We have looped {} times'.format(loop_num))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Iterate over 'f' and print each character"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Range Function\n", "\n", "print(range(3))\n", "print(range(2, 5))\n", "print(range(0, 20, 2))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["a = range(5)\n", "print(a[0])\n", "print(a[-1])\n", "a.append(5)  # error: range returns a generator, not a list"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Range and lists\n", "\n", "for i in range(3):\n", "    print(i)\n", "\n", "print('\\n\\n')\n", "\n", "# Get the product of numbers one through ten\n", "product = 1\n", "for i in range(1, 11):\n", "    product *= i\n", "print(product)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Repeat the above exercise, but instead \n", "# iterate over the range of the length of 'f'.\n", "# Index into 'f' to print each character.\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Nesting\n", "\n", "for i in range(3):\n", "    for j in range(2):\n", "        print((i,j))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# While loops\n", "\n", "val = 0\n", "while val < 5:\n", "    print('looping')\n", "    val += 1\n", "print(val)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Iterate until a convergence tolerance is met\n", "\n", "n = 0\n", "sol = 2.\n", "tol = 1e-5\n", "curr = 0\n", "while abs(sol - curr) > tol:\n", "    curr += 0.5**n\n", "    print(curr)\n", "    n += 1\n", "    \n", "print('Converged in {} iterations'.format(n))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Print the characters in 'f' again, but use a while-loop instead of a for-loop"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Functions\n", "\n", "def greet(name):\n", "    print('Hello {}! Welcome to CS 357!'.format(name))\n", "    \n", "greet('Alice')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def convert(deg, celsius=True):\n", "    if celsius:\n", "        temp = (9 / 5.) * deg + 32\n", "    else:\n", "        temp = (5 / 9.) * (deg - 32)\n", "    \n", "print('It is {} degrees Fahrenheit outside.'.format(convert(0)))\n", "print('I happen to know that is {} degrees Celsius.'.format(convert(32, False)))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# What went wrong?  We forgot to return the value we wanted from the function.\n", "\n", "def convert(deg, celsius=True):\n", "    if celsius:\n", "        temp = (9 / 5.) * deg + 32\n", "    else:\n", "        temp = (5 / 9.) * (deg - 32)\n", "    \n", "    return temp\n", "\n", "    \n", "print('It is {} degrees Fahrenheit outside.'.format(convert(0)))\n", "print('I happen to know that is {} degrees Celsius.'.format(convert(32, False)))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["#Try it:\n", "\n", "# Write a function which takes a 24-hour time as an integer\n", "# and returns the equivalent 12-hour time as a string.\n", "# The first two digits are the hour and the last two digits\n", "# are the minutes"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Math operations \n", "\n", "import numpy as np\n", "print(np.sin(2*np.pi))\n", "print(np.log(np.e))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Calculate cos(sqrt(pi*e))"]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": false}, "outputs": [], "source": ["# Need to figure out how to use a function?\n", "\n", "help(np.log)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["np.log?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["# Matplotlib\n", "As before, the first thing we do is import necessary packages"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": ["#%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This notebook will go through a lot of examples, but matplotlib\n", "has pretty good [documentation](http://matplotlib.org/api/pyplot_api.html) and a \n", "[gallery of examples](http://matplotlib.org/1.5.1/gallery.html).  They also\n", "have a [pyplot tutorial](http://matplotlib.org/users/pyplot_tutorial.html)\n", "that might be helpful in addition to the examples shown here.\n", "\n", "Often, it is helpful to find an example in the gallery of what you are looking for\n", "and then view the code for how to create that plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Simple plotting"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What about just a simple plot?\n", "\n", "Simple plot of some random numbers.  Note that range of x values is assumed from 0 to n-1\n", "if no range is specified."]}, {"cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f342c24a8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["yvals = np.random.randint(0, 50, 10)\n", "plt.plot(yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create 'xpts', a list or Numpy array containing equispaced values of sin(x) on the interval [0, 2*pi]\n", "# Create a list 's' the values of sin(x) at each point in 'xpts'\n", "# Plot 's'"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What if we have x-values we want to provide too?"]}, {"cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f342235f8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals = np.arange(2003,2013,1)\n", "yvals = [62,112,116,114,119,127,103,126,105,139]\n", "plt.plot(xvals, yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Plot 's' again, but this time with 'xpts' as the 'x-axis'"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Note that the arguments could be arrays or lists, it didn't matter."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Adding titles and labels\n", "\n", "Those previous graphs had no labels.  Good plots have axes labels and titles, so how do we add them?"]}, {"cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [{"data": {"image/png": "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\nteHEYGZmbfx/k4utRLqSAXcAAAAASUVORK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f34199400>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals, yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Add axis labels to your sine plot"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Changing line style, color\n", "\n", "That plot still doesn't look great, how can I make it look better?\n", "\n", "You can specify the line color, style, etc. that you want.\n", "\n", "This plot changes the line color to red, adds circle markers at the data points,\n", "and changes the line width to be thicker."]}, {"cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [{"data": {"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VPXVwPHvCYjsyKIgCBEjImqVKirWLYq4IKD2tW6o\nRK3VUkGt+OKGCcUNRKulfa1WBQRxw1rFuoGSVq2IChSRRYUAYQsKBtlkm/P+8bsTJmEmmUlm5s5y\nPs+TJzN37tx7Zghz5redK6qKMcYYE5TjdwDGGGNSiyUGY4wxlVhiMMYYU4klBmOMMZVYYjDGGFOJ\nJQZjjDGVWGIwexGRJ0Tk7iScZ5yI/CFBxy4UkYmJOLYxmc4SQxYRkWUi8pOItKqyfY6IBESkE4Cq\n/lZV7/cnykpxtRORp0VktYhsFJEF3gd+oygP4esiHREJ1OI5hSKyQ0R+FJENIvKRiPQMefx0Ednt\nPf6jiJSKSFHV84rIIXF4CbHGPlFEnq2y7XQR+V5E2iY7HlN7lhiyiwIlwOXBDSJyFNAInz9EqxKR\nlsAnwL7AiaraAugN7Afkxflc9ZLxnBi8qKrNgTZAMfBKlcdXqWpzb59TgOtEpH/I4379W94MnCsi\nvQBEZF/gKeBWVS2L54lExD67Esje3OwzERgYcn8gMCF0h6pdPCLyv9639pUicl3oN1IRmSEi14bs\nO1BEPgy5f7iIvCci60VkoYj8Kso4bwN+VNWrVLUUQFVXqeqtqjrfO/ZjIrLCa018JiKnVDlGIxF5\n0ftm/bmIHB0SV4n3uv4LbBaRHBE5UESmiMg6EVkiIoND9i8UkVe8b8XlwEAROV5E/iMiP4jIKhEZ\nKyL1Q86vIc8v8I75o/f7cmqgqgHgeaC9iLSOsM9y4D/AESGbJeS8x3vvzUYRWSMiY8Idx2uN9Qm5\nX897H7qLyL7e6/7ee62fisj+YWLZAAwBnhKRxkAR8K2qTvSOKSJyl4h86x17soi0CHnsFS/GDSLy\ngYgcHhLPRBH5s4i8LSKbcAnRJIglhuwzE2gmIl29b12XApMI+TAJJSLnArcAZwKHAvnU/I1Uvec2\nBt7zjt8GuAz4v9D/8NXoBfy9hn1mAUcDLYHJwCsi0iDk8f7AS97jLwD/qPJN/zLgPFwrRIGpwBzg\nQO/8N4tI7yrHe1lV98N9YO/CvTetgJNw79GgijdBtV7I+/A4cI73Lf8XwNya3gDvtQwE1gM/RNin\nC3AyrnUVzuPAY16LKw94OcJ+k4ErQu6fC3ynqnO9GJoDHbzXeiOwLdxBVHUKMBv3fv8auD7k4d/j\n3u9TgIOAzcDYkMenejG2A+bjvsSEuhwoVNVm1bxeEweWGLJTsNXQG1gIrK5m318B41R1kar+hPsW\nGDaJhNEXKFHV59T5L/Cqd8yatAbWVLeDqk5W1XJVDajqH3HdTl1DdvlCVV9T1d3Ao0BDoGfI44+r\n6mpV3Q4cD7RR1ftVdbeqLgOexiWPoE9Udap37u2qOkdVZ3mvbQWu2+T0COHuBn4mIg1VtUxVF1bz\n0i4VkQ3AVuA64GKv9RDUwftWvRFYhEv2H0c41g7gUBFprapbVXVWhP1eAPqLSEPv/uXeNoCduH+P\nw7zXOkdVN1cT/+9wSXKEqob+bd0A3KWqa1V1BzAS72/BO+5zXow7gD8Ax0nl8aTXgvGr6s5qzm/q\nyBJDdpqE+3ZYADxXw77tgdKQ+6WRdgwjF+jpfYhtEJEfvPNGMxC5HvfNPSIRGep1gfzgHTvYL79X\nrOqqRa7EvZ6glVVi7VAl1juBA8Idzzt/FxGZ6nV/lAP3Vzl/8NxbcS2z3wJrvOd0rbpfiJdUtZV3\n7vlAjyqPr1LVVl4rYD/gJyL/O16HS5aLvC6g88PtpKpLgAVAP+/DuD+uFQHui8S7wIted+JDUs0Y\ni6quA773jheqEzA1+B4D84CAiBzgdeWN9rrZyoFvcK24sP+eJrEsMWQh79ttCa5ZX1N3zRpcsz+o\nU5XHtwCNQ+63C7ldChR7H2KtVLWlN2h6UxRhTgcuivSgN55wO+7bdEtVbQn8SOXWTMeQ/cV7HatC\nHg/tEisFllaJtYWq9ouwP8ATuBZXnte9dDcRWlOqOk1Vz8a9P4uBv0V6bSHP2YD7ll0kEWb1qOom\n3Ad43wiPL1HVK1R1f2A0MEUiz+p6EZe4LwC+UtWl3jF2qepIVT0S1w3WD7i6pvjDKAV6V3mPm3iJ\n5Gpc91W+914einsvQ9/PlJogkcksMWSva4EzVTVsX3GIl4FrxA0iNwbuofJ/0LnAL0WkkYgcivuG\nGvQmcJiIXCki9UVkHxHpUcO35aBHgeYiMkG8abQi0kFEHhE3k6oZrotjvYg0EJF7vW2hjhORC71v\nt7fivll/GuF8s4BN4gakG3qDr0eKSNVv66Ga4QbIt3rjJr8Nt5P3jbi/9/7txPWt747iPUBVvwbe\nAYaFHjLk2E1x3T5fRTj3ABEJfuveiPu3izSN9kXgbO91BFsLiEi+iBzljUlt9l5DzFNxgSeBB0Wk\no3fcA0QkmHibAduBH0SkCfAAlgh8Y4khu1T8R1PVElWdHe6xSk9QfQf4EzAD+Jo9g37bvd9/xH1Q\nrAXG4bqpgs/djPuguQw3jrEaeAg3FlB9oKo/4L6d7gQ+9frTpwHlwLe4ro13vZhKcP3xVbsaXsd1\n4fwADAB+6Y037PV6vT78vkB373jrcN/qm1cT5lBggIj8iPvQezHCfjm4gddVuC6W04iQRCIYA1wf\n8gF/oHjrGLxY9/NeX8XLCbl9LvCVt+8fgUu9MZW9qOpa3L9vT9ygfVA7YAousXyF+1uoafFguL+n\nR4C3gfe9f8+P2NNNNg7XOl0NfOk9VtPxTIKIJvBCPSLyDO4/W5mqHl3lsduAh3EDfhu8bX/CdW9s\nAQq8GREmhXjfjL8E9q0yIGqMyRCJbjGMA86pulFEDsLNiFkesu08XF9tF1y/6l8THJuJktcd00Dc\norNRwBuWFIzJXAlNDKr6EeHnX/8RN3AY6gK8mRWq+inQItKAm0m6G3BdK9/gunYGVb+7MSad1a95\nl/gSt3S/VFW/dBNFKnSgch/xKm9bXJfSm9ip6nl+x2CMSZ6kJgZvmtxduG4kY4wxKSjZLYY84GDg\nvyHzymeLyAm4FkLHkH2rzjmvICI2Q8EYY2pBVWusXJCM6aoVi1RUdb6qtlPVQ1S1M27l6c+9BS5v\n4C2aEVdmuFyrqcioqin1U1hY6HsM6RKXxWQxZUNcqRJT0YABbCa2+b4JTQwiMhlX+fEwcVUwr6my\ni7InabwFlIjIt7g54TbAaYwxdRRYtYomMT4noV1JqnpFDY8fUuV+NKUSjDHGRCmnQwe2QEzJwVY+\nx0l+fr7fIYSVinFZTNGxmKKXinGlSkwFhYUU1qvHlhiek9CVz4kiIpqOcRtjTNK9+SbL+/VjfLNm\nFG3ahKbI4LMxxhi/PP00uUDhPfdE/RRrMRhjTKZaswY6dgQRWLkSadfOWgzGGJPVxo+H3buhf39o\nG32FIUsMxhiTiQIBePppd/vXv47pqZYYjDEmExUXw9Klrivp7LNjeqolBmOMyUTB1sK110K9iJfo\nDssGn40xJtOsXw/t28POnVBSArm5AIiIDT4bY0xWmjQJduyAc86pSAqxsMRgjDGZRLXWg85B1pVk\njDGZZOZMOOkkOOAAKC2FBg0qHrKuJGOMyUbB1sLAgZWSQiysxWCMMZli0yY48EDYsgUWLYKuXSs9\nbC0GY4zJNi++6JLCaaftlRRiYYnBGGMyRR0HnYOsK8kYYzLBvHlwzDHQogWsXg2NG++1i3UlGWNM\nNgm2Fq68MmxSiIW1GIwxJt1t2+ZWOpeXw5w50L172N1SosUgIs+ISJmIzAvZ9gcR+a+IzBGRd0Sk\nXchjfxKRb0RkroiEf2XGGGMq+/vfXVLo0SNiUohForuSxgHnVNk2WlWPUdWfA/8ECgFEpA+Qp6pd\ngBuAvyY4NmOMyQxxGnQOSmhiUNWPgB+qbNsccrcJEPBu9wee8/b5FGghItFfWcIYY7LRN9+4EtuN\nG8Pll8flkPXjcpQYich9wNVAOXCGt7kDUBqy2ypvW1lyozPGmDTyzDPu96WXQvPmcTmkL7OSVPUe\nVe0EPA8M9iMGY4xJezt3ust3Qty6kcCnFkOIybhxhiJcC6FjyGMHedvCKioqqridn59Pfn5+IuIz\nxpjU9eabUFYGRxzhCudVUVxcTHFxccyHTfh0VRE5GJiqqj/z7h+qqt96twcDp6rqJd7g8+9U9XwR\n6Qk8pqo9IxzTpqsaY8z558Nbb8Gjj8Ktt9a4e7TTVROaGERkMpAPtMaNFRQC5wNdgd3AcuBGVV3j\n7f9n4FxgC3CNqs6OcFxLDMaY7FZaCgcfDPXrw6pV0KZNjU+JNjEktCtJVa8Is3lcNfvflMBwjDEm\nc4wbB4EAXHRRVEkhFlYSwxhj0s3u3XtmI8Vx0DnI78FnY0wVy0tKGD98OIFVq8jp0IGCkSPJ7dzZ\n77BMKpk+HVasgM6d4cwz4354SwzGpJDlJSWM7d2bEUuW0AQ32FY4cyaDp02z5GD2CK50vu46yIl/\nx48V0TMmhYy48kqGPv88TUK2bQHGDBhA4aRJfoVlUsm6dXDQQa47acUK6NAh6qemxOCzMSYGy5YR\nePfdSkkBvLoxq1f7EVHKy8put+eecwvb+vWLKSnEwhKDMX7bvh3GjIH77ydn2za2wF4thpz27X0K\nLnVlZbebatwL5oVjs5KM8dM778BRR8E998C2bRT07Uthbi5bvIe3AIUNGlAwYoSfUaak8cOHVyQF\ncMl0xJIljB8+3M+wEuujj2DxYjjwQOjTJ2GnsRaDMX5YtsytVP3HP9z9bt3gL38h94wzGFxSwpjh\nwwmUlpLz2WcM3raN3E8+gbw8X0NONYGSkuzrdgu2Fq65xi1sSxBLDMYkU0i3Edu2QZMmUFQEQ4ZA\ngwYA5HbuvGegecIEKCiAu+6C//kfaNTIt9BTTc6aNdnV7VZeDq+84m5fe21CT2VdScYkS5VuIy67\nzHULDB1akRT2cuWV7opcpaXw2GPJjTeVzZpFQUkJhVC52615cwpGjvQxsASaPNn93fTqlfDWo01X\nNSbRInQbccYZ1T6twvvvw1lnQbNm8O23cMABCQs1LQQC8ItfwKefsvyGGxi/eTOBr78m5/PPKVAl\n96OP4OST/Y4y/o491l3P+YUX3JeKWoh2uiqqmnY/LmxjUtxPP6ned59qo0aqoNqkierDD6tu3x77\nsfr0cccYNCj+caab555z70W7dqo//rhn+z33uO3durn3PpN8/rl7ba1a1em1eZ+dNX7GWleSMYlQ\nm26j6owe7Va4PvkkLFoU/3jTxaZNMGyYu/3QQ64VFXT33XDYYbBwIYwa5U98iRIcdL76ath334Sf\nzhKDMfG0bJmrdnneea7bp1s3+OAD1/yvy2KkI4+E6693q12DH4zZ6MEHYc0aOOEEuOqqyo81bAhP\nPeVu33+/SxCZYMsWN74ACV27EMoSgzHxsH27+zA64gg3ltCkCTz8MMydG/1YQk2KiqBpU3jjDXfx\n92yzdCk88oi7/fjj4WsEnX66qx+0YwfccIMbj0h3r7wCP/7ortB25JFJOaUlBmPqKt7dRpG0a7en\ntXDbbZnxoReL225zH/hXXQU9w17c0Xn4YWjbFj78cE8XTDpLwkrnqmxWkjG1VdfZRrWxdavrR1+1\nCiZOdNNZs8H06dC7t2uJff011LRW4eWX4dJLoUUL16V04IHJiTPeFixwrYRmzWD1atdirINoZyVZ\ni8GYWCWj2yiSxo3ducEtetu2LbHnSwW7dsEtt7jbd99dc1IA+NWv3PWQN250iwfTVfBiPJdfXuek\nEJNopi6l2g82XdX45e23VQ891E0dBNXLLlNduTK5Mezapdq9uzv/Aw8k99x+GDvWvdZDDlHdti36\n5y1f7qYIg+rrrycuvkT56SfVNm1c/LNmxeWQRDldNdEf4M8AZcC8kG2jgYXAXOBVoHnIY3cC33iP\nn13NcePyJhkTtZIS1Qsv3JMQunVTff99/+KZPt3F0ayZalmZf3Ek2vffq7Zs6V7ra6/F/vzHHnPP\nPegg1Y0b4x9fIr30kov9mGNUA4G4HDJVEsMpQPcqieEsIMe7/RDwoHf7CGAOrn7TwcC3eGMgYY4b\nlzfJmBrFc5FavGXDordBg9xr7NWrdh+Ou3apHn+8O8bgwfGPL5F693Zxjx0bt0OmRGJwcZAbmhiq\nPHYhMNG7fQcwLOSxt4ETIzwvbm+UMRGlQrdRdebPV83JUa1XT3XhQr+jib958/a8vi+/rP1x5s51\nxxBR/eST+MWXSEuXur+5hg1VN2yI22GjTQx+Dz5fC7zl3e4AlIY8tsrbZkxyhVuk9v77dV+kFm+Z\nvOhNFW6+2U3J/e1v3XTg2jrmGLj9dnfM6693Vz9Ldc8+635ffDG0bJn00/tWdltE7gZ2quoLtXl+\nUVFRxe38/Hzy8/PjE5jJKpUuDdmuHQXt25P7xBMRS2KnnKIieP75PYveMuX/wWuvwYwZ0KoVxOMi\nRffe6xaKzZ/vZpDddVfdj5kou3bBuHHudh3XLhQXF1Ncm8WQ0TQr6vJDmK4koAD4GNg3ZFvVrqR3\nsK4kk0DLli7V2/LydLPXVbQZ9DbQZanYbVSdkSNdt8Oxx6ru3u13NHW3bZvqwQe71/SXv8TvuMEB\n+333VV28OH7HjbepU12cXbrEbdA5iBQaYzgY+DLk/rnAV0DrKvsFB58bAJ2xwWeTYEWXXVaRFDQk\nORT16uV3aLHZskW1Qwf3GiZO9DuaurvvPvdafvYz1Z0743vsgQPdsfPz4/6hGzcXXOBiHDUq7oeO\nNjEkdIxBRCYD/wEOE5EVInINMBZoCkwTkdki8n/eJ/0C4GVgAW7cYZD3QoyJH1WYPRuGDCEwZUr4\nS0OmW6mJTFr0tmoVPPCAu/3YY/G/fOUjj0CbNq7bLdhdk0rWrIE333Sve+BA/+KIJnuk2g/WYjCx\nWrtW9ZFH3LdQr3VQ5LUQ9moxDBjgd7SxC1309uCDfkdTewMGuNfwy18m7hyTJrlztGzp/i5SyQMP\nJPT1kypdSYn4scRgorJ9u+qrr6r26+emKwYTQOvWqkOG6LKpU/ceY8jL02VLl/odee2k+6K3jz/W\nijGARP4bBAKq55yjFVOQU8Xu3ap5eS6ut95KyCmiTQxWRM9kFlV3+cPx410N+/Xr3fZ69VztnIIC\n99ubZVQxK2n1anLat6dg5EhyO3f2Lfw6O/98eOstGDTIFfRLF4EAnHgifP65q4d0332JPV9JiZsC\nu3Ur/POf0KdPYs8XjQ8+cNdz7tjRxVevXtxPYZf2NNmlrGyvrqKKAcxHH029LoNESddFb88+6/69\nOnRQ3bw5OeccM8ads1Mn1U2bknPO6lx+uYunsDBhp8BaDCbj7djhvu2NH+++Je/a5ba3bg0DBrjW\nQffuIDV/QcooN97oLgHavz+8/rrf0dTsxx9dKfGyMpg0yf3bJcOuXa6VMnu2K5/+6KPJOW8469e7\nqrE7d7rWQm5uQk4TbYvBEkOGqrRwq0OH9O8iCYqxqygrrV0LXbrA5s1ukViqL3r73/91i85OOgk+\n/ji5iXz2bHeZUFWYOROOPz555w71+OOutPi558LbbyfsNNaVlMWWLVmit3XsWHlQ9ZBD0ndQVdW6\nimKVLovevv5adZ99XKyffeZPDEOHakUV0x07kn/+QED1qKNcDFOmJPRU2KykLLNjhysDfcstWtS0\nafhpmE2auNkYgwer/vnPqu+9p7psWep+cGzfrvr3v6v2769av/6e19OqlXsNs2en7iIlv6XLore+\nfV2M11zjXwybN+9ZaZ2ARWU1+uQTd+4DDkh41V5LDNng++/df/pLLlFt3rzig/PeKkmhpu3asKH7\n5n3xxap33aU6YYL7Y12/PvmvKRBwH/hDhrhppcEY69Vz005ffdWVwjY1Gz/evXcdO6pu3ep3NHt7\n+22tmF67Zo2/sbzzzp7/C99+m9xzX3edO/fttyf8VNEmBhtjSCeqsGiRWxk5darrjw1dpXvEEdCv\nHyNmz2botGmVVvVuAcb07Uvh9de7C9V//bX7WbzYDfpF0qaNGxjs2tX9Dt7Oy4OGDeP32tatc8Xg\nxo+HefP2bD/qKLjmGjcg2bZt/M6XDXbvhh493CVHH3wQ7rjD74j22LkTjj7a/T2PHu2qn/rtyivd\n3+BZZ8F77yVnrGPTJnc96i1b3HvRtWtCT2eDz5li50748EOXCKZOhSVL9jy2zz5w+unQty/06weH\nHAK4geexvXszYskSmuCSQmFeHoOnTQs/AL1x455EEUwWwdtbtoSPSwQOPrhysgj+PuggyNm72spe\nA+LDh5O7YMHes4patdozq+jnP8++WUXx9P777oOuWTNXQvyAA/yOyHnsMTcT6NBDXcXTfff1OyL4\n7js4/HDYsAEmTICrr078Of/2N/jNb+C00+Bf/0r46SwxpLP1693MhKlT4Z133HS+oNat3WKcfv3g\n7LOhRYuwh4jLwi1VWL26crII/i4pcd9Iw2nUyM2KCUkay5s2ZezQoYwoKdmTrHJyGBwIkAtuVlGf\nPntmFaXCB0WmSLVFb9995/4+Nm50f+N9+/od0R4TJri/wdatYeFC2H//xJ7vxBNh1ix47jm46qrE\nngtLDOklyi4i+vZ1U/oSsCIyZjt2wNKle7cwInRNjQCGwt7dWy1aUHjvvdZVlEhffeW6bUTct/PD\nD/c3nhtugKeegnPOcV+AUqlFqAq9e7uW1pVXwsSJiTvXvHnuIkItWrjieY0aJe5cHpuumupCZhFV\n1EcJ/uyzj+pZZ7kLmS9Z4neksSsvV501yxUru/de1Usv1XubNg0/IJ6f73e02eGGG9x73r+/v3HM\nmeMusVm/vuqCBf7GEsk337hBaFB9993EnWfwYHeO3/0uceeoApuVlIIizCKqKOx21VWqL7/sPlgz\nTNGAAZlTyTQdrVmjGkzOM2b4E0MgoHraaS6GW27xJ4ZoPfSQi7Nz58SU6Ni6VXW//dw55syJ//Ej\nsMSQCgIB961o9GjVU091NWxCPxyPOEJ12DDVjz5yZZMzWNirpaVzJdN05Peit5decudv00b1hx+S\nf/5Y7NjhFrwlahppsPR3jx7xP3Y1ok0MNsZQR3vNtLn3XnJXrqx+FlFwvMCbRZQtMq6SabrZutVN\nBli1yvWdX3llcs/drRusWOHqOP3mN8k7d2199hn07OnGQD77zM2Qi5czznAXC/rrX92YS5LYGEMS\nhP0WLOKuGRyui2jjRr9DNtnOr0VvRUXuvN27p1fr+JZbXNzHHRe/y4x+/bU7ZuPGSf9MwLqSEi9i\nv3nz5lnTRWTSjB9Xelu+XLVRI3fOf/0rOeeMl02bXFlucLW64mHYMPWrDEi0iSGh13zOdIFVq8Jf\nM/i44+Chh+Dkk1NjaqkxQfXqwZgx7vYDD7gV54k2bJi7DvUll7iFXOmkaVN44gl3e/hwt36nLnbu\ndAs6AX7967odK4ESmhhE5BkRKROReSHbLhaR+SKyW0SOrbL/nSLyjYgsFJGzExlbPOR06EDVdcFb\ngJz27f0Ix5jo9OrlFhNu2gQjRiT2XB9+CC++6MqnjB6d2HMlSp8+cOmlbpxk0CDXN1Bbb77p1vkc\ncYRbk5SqomlW1PYHOAXoDswL2dYV6AJ8ABwbsr0bMAeoDxwMfIu3AC/McRPV0orJsqVL9bb997eZ\nNib9JONKb7t2qf78567bJIFXJUuKtWv3TC99/vnaH6dPH3eMRx+NX2wxIBW6klT1I+CHKtsWq+o3\nQNWR8QuAF1V1l6ouA74BTkhkfHWV27kzg086iTFAYZcujBkwIHI9ImNSyZFHwvXXu7Imw4Yl5hzP\nPusuqtSxo7sYTzpr23ZPF9wtt+y5QFQsSktdiZsGDZJS/qIuUmmMoQNQGnJ/lbctdQUC5M6cSSEw\n4vXXKZw0yZKCSR9FRa4P/Y033NTJeCovh7vvdrcffhgaN47v8f1w7bXuanjffQdDh8b+/HHjXKmb\niy5yVYtTWH2/A6itoqKiitv5+fnk+3H5wvnz3eBdhw7+158xJlbt2rnWwvDhcNttbq5+mKq4tfKH\nP7gP0FNOcYPOmUDErcE4+mg3gHzVVXDmmdE9d/dueOYZdzuJg87FxcUU1ybpR9PfVJcfIJeQMYaQ\n7TOoPMZwBzAs5P47wIkRjhnfjrfaeuQR1184cKDfkRhTO4m40tvCha4Wkoi76FKmue8+937l5UW/\nFiR4IaDOnX29YiKpMMbgEfYeTwh9LOgN4DIRaSAinYFDgVmJDq5Opk93v886y984jKmtxo3h/vvd\n7bvuctNK6+r3v3fX1vj1r+O7WjhV3H67u4DUkiUwcmR0z3n6aff7uuvi1ypLoISWxBCRyUA+0Boo\nAwpxg9FjgTZAOTBXVc/z9r8TuA7YCdysqu9FOK4mMu6obN/uLiizdau7ZsGBB/objzG1Fc8rvf3z\nn67cS4sWrgx7qlwYKN5mzoRf/MKtC/niC9e9FMm6de7iVbt3uwFoH6ezW0mMRCsudk3Do47yOxJj\n6m76dK24/vK6dbU7xvbtql26+DodM6luusm91hNOqL7CwcMPu/369UtebBGQQl1Jmcm6kUwmCV30\nFjKxIyZ/+hN88427vOvvfhfX8FLS/fe7iSezZkW+Mp7qnm6kFF7pXJVVV62tk05yzck333SXTjQm\n3dXlSm9lZe5ynZs2uauynXtu4uJMJW+8ARdcAE2awIIF0KlT5cc/+ghOPdV1Na9YAfX9nQgabVeS\ntRhqo7zcfUuoXz/9ar8YE0ldFr3dfbdLCuefnz1JAaB/f/if/4EtW8KXy/jb39zva67xPSnEwloM\ntfGPf7hFKqeeCv/+t39xGBNva9e6b/6bN8OMGW5BV02++AKOP9598M2f7675kE3WrHHXmti4EV56\nac+6jfJyN9C8bZubwZQC11+xFkMi2fiCyVTBRW/gFr0FAtXvrwpDhrjfN9+cfUkBXDfRqFHu9pAh\n8INXBWiVSFqQAAAVaElEQVTyZJcUevVKiaQQC0sMtTFtmvtticFkot//3g2qzp7tPtyq88IL8J//\nuGmp99yTnPhS0fXXu1XeZWV76kKl4aBzkHUlxWrFCsjNhWbNYMOGtOo3NCZqEyZAQYErgLd4MTRq\ntPc+W7a4GUirVrlyD9dem/QwU8rChdC9O8t37GD8sccSmD2bnAYNKJg3j9yuXf2ODrCupMR5/333\n+4wzLCmYzHXlldC9u1uQ9fjj4fcZNcolheOOc0kk23XrxvIbb2QsMHT2bEYAQ3fsYOz557O8rhf4\nSTJLDLGy8QWTDape6e277yo/vmyZq5oKLnGkQZmHZBi/bh0joOLKjk2AEUuWMH74cB+jip39a8Yi\nELDEYLJHdYvebr8dfvoJrrjCXcLWABBYuzb85X5Xr/YjnFqzxBALK7Ntss3o0a418OSTsGiR2zZj\nBkyZ4grwBWfjGCBzLvdriSEWoa0FqbkOlTFpr+qit1273BXMAO680xWHMxUKRo6kMC+vIjlsAQrz\n8iiItgprirBZSbHo08ct95840Q3OGZMN1q5l+SGHMH7bNgJt25JTVkZB+/bkfvtt+NlKWW55SQnj\nhw8nsHo1Oe3bUzByZMpc2THaWUmWGKJlZbZNllpeUsLYHj0YsWEDTfC+Bbdty+BPPkmZDzwTHZuu\nGm8zZ7qkcNRRlhRMVhk/fHhFUgBvpk1ZWdrNtDHRiyoxiEgTEcnxbh8mIv1FZJ/EhpZibDaSyVKB\nVasyYqaNiV60LYZ/Aw1FpAPwHnAVMD5RQaUkSwwmS2XKTBsTvajGGERktqoeKyKDgUaqOlpE5qpq\n98SHGDae5I4xlJdD69Zu2t6GDa4chjFZYnlJCWN792bEkiV7xhjy8hg8bZqNMaSZaMcYoq3pICJy\nEjAAd01mgHq1DS7tFBe7xW0nn2xJwWSd3M6dGTxtGmNCZtoMTqGZNib+ok0MtwB3Aq+p6lcicggw\no6YnicgzQF+gTFWP9ra1BF4CcoFlwCWqutF77E/AebgvJQWqOje2l5Mg1o1kslxu584UTprkdxgm\nSaIaY1DVf6lqf1Ud5d1fqqpDonjqOOCcKtvuAKaralfgA1zCQUTOA/JUtQtwA/DXKF9D4lmZbWNM\nFql2jEFEpgIRd1DV/jWeQCQXmBrSYlgEnK6qZSLSDpihqt1E5K/e7Ze8/RYC+apaFuaYyRtjCC2z\nvX497JNdk7GMMZkjXmMMY+IUT6gDgh/2qrpWRNp62zsApSH7rfK27ZUYkiq0zLYlBWNMFqg2Majq\nv5IQQ62++heFVHvMz88nP5pr09aGjS8YY9JUcXExxcXFMT+vpq6kLsBdwA/Ao8DfgFOBJcB1qvp5\njSfYuyupoouohq6kii6nMMdMTldSIOBWOa9bBwsWuAt+G2NMmopXSYxxwCfAauBT4FmgDTAU+Eu0\nsXg/QW8ABd7tAuD1kO1XA4hIT6A8XFJIKiuzbYzJQjUlhqaq+pSqjgG2qeorqvqTqk4D9q3p4CIy\nGfgPcJiIrBCRa4CHgN4ishg407uPqr4FlIjIt8CTwKDav6w4sTLbxpgsVNPgcyDk9o/VPBaWql4R\n4aGwHfaqelNNx0wqG18wxmShmsYYtgLf4rqC8rzbePcPUdWqtbWSIiljDFZm2xiTYeI1XTV7R1ut\nzLYxJkvVNF11ebjtXgnuy4Gwj2cE60YyxmSpagefRaS5iNwpIn8WkbPFGQwsBS5JTog+scRgjMlS\nNY0xvI5bw/AJ0As4ADe+cLOfBe4SPsZgZbaNMRkoXmMMh6jqz7wDPg2sATqp6k9xiDF1WZltY0wW\nq2kdw87gDVXdDazM+KQA1o1kjMlqNbUYjhGR4PoFARp59wVQVW2e0Oj8YonBGJPForq0Z6pJ6BhD\naSl06mRlto0xGSdetZKyT7C1YGW2jTFZyhJDVdaNZIzJcpYYQgUClhiMMVnPEkOoYJnt9u2tzLYx\nJmtZYggVbC307m1lto0xWcsSQyjrRjLGGJuuWsHKbBtjMpxNV41VsMz2kUdaUjDGZDVLDEGh4wvG\nGJPFLDEE2fiCMcYAPiYGEblZRL70foZ421qKyHsislhE3hWRFkkJprwcZs2C+vXhtNOSckpjjElV\nviQGETkSuA7oAXQH+opIHnAHMF1VuwIfAHcmJaBgme2TTrIy28aYrOdXi6Eb8KmqbvfKef8b+CXQ\nH5jg7TMBuDAp0Vg3kjHGVPArMcwHTvW6jhoDfYCOQFtVLQNQ1bW4K8YlniUGY4ypUNP1GBJCVReJ\nyChgGrAZmAPsDrdrpGMUFRVV3M7Pzyc/P792wZSWwuLFrgvp+ONrdwxjjElBxcXFFBcXx/y8lFjg\nJiL3A6XAzUC+qpaJSDtghqp2C7N//Ba4jRsH114L/fvD66/H55jGGJOCUn6Bm4js7/3uBFwETAbe\nAAq8XQYCif+ktm4kY4ypxLcWg4j8G2iFu670rapaLCKtgJdx4w3LgUtUtTzMc+PTYggE3Crndetg\nwQLotlfjxBhjMka0LYaU6EqKVdwSw7x5cMwxrsz2ypVWUdUYk9FSvispJViZbWOM2YslBrDxBWOM\nCZG9XUlWZtsYk2WsK6kmVmbbGGPCyt7EYGW2jTEmLEsMNr5gjDGVZOcYQ3k5tG4NOTmwYYNVVDXG\nZAUbY6hOsMx2z56WFIwxporsTAw2vmCMMRFld2Kw8QVjjNlL9o0xlJZCp06uC2n9ethnn/gGZ4wx\nKcrGGCIJthbOOMOSgjHGhJG9icG6kYwxJqzsSgyBgCUGY4ypQXYlhvnz3bUX2reHww/3OxpjjElJ\n2ZUYrMy2McbUKDsTg3UjGWNMRNkzXdXKbBtjspxNV63KymwbY0xUfEsMInKriMwXkXki8ryINBCR\ng0Vkpoh8LSIviEj9uJ3QymAYY0xUfEkMItIeGAwcq6pHA/WBy4FRwCOqehhQDlwXt5Pa+IIxxkTF\nz66kekATr1XQCFgNnAG86j0+AbgoLmcqL4dZs6B+fTjttLgc0hhjMpUviUFVVwOPACuAVcBGYDZQ\nrqoBb7eVQPu4nNDKbBtjTNTi14cfAxHZD7gAyMUlhVeAc2M5RlFRUcXt/Px88vPzI+9s4wvGmCxU\nXFxMcXFxzM/zZbqqiFwMnKOq13v3rwJOAi4G2qlqQER6AoWqel6Y58c2XfXww2HxYvj4Y/jFL+Ly\nGowxJt2k+nTVFUBPEWkoIgL0Ar4CZgC/8vYZCLxe5zOVlrqk0KwZHH98nQ9njDGZzq8xhlnAFGAO\n8F9AgKeAO4Dfi8jXQCvgmTqfLNiNlJ9vZbaNMSYKvowxAKjqCGBElc0lwIlxPZGNLxhjTEwye+Wz\nqq1fMMaYGGV2YvjySyuzbYwxMcrsxGBlto0xJmbZkRisG8kYY6KWuWW3rcy2McZUkurrGBLPymwb\nY0ytZG5isGmqxhhTK5mfGGx8wRhjYpKZYwzl5dC6NeTkwIYNVlHVGGPI9jEGK7NtjDG1lpmJwcYX\njDGm1jI7Mdj4gjHGxCzzxhhKS6FTJ9eFtH69VVQ1xhhP9o4xWJltY4ypk8xNDDa+YIwxtZJZicHK\nbBtjTJ1lVmKwMtvGGFNnmZUYQlsLVmbbGGNqxZfEICKHicgcEZnt/d4oIkNEpKWIvCcii0XkXRFp\nEdOBbXzBGGPqzPfpqiKSA6zEXev5JmC9qo4WkWFAS1W9I8xz9p6uamW2jTGmWuk0XfUsYImqlgIX\nABO87ROAC6M+ipXZNsaYuEiFxHApMNm73VZVywBUdS1wQNRHsW4kY4yJC18Tg4jsA/QHXvE2Ve3X\nir6fy6apGmNMXNT3+fznAV+o6vfe/TIRaauqZSLSDlgX6YlFRUUVt/N79CB/1iyoXx9OOy2hARtj\nTLooLi6muLg45uf5OvgsIi8A76jqBO/+KGCDqo6KafD5H/+Aiy6CU06BDz9MUvTGGJNeUn7wWUQa\n4wae/x6yeRTQW0QWA72Ah6I6mI0vGGNM3PjWlaSqW4H9q2zbgEsWsbHxBWOMiRvf1zHURqWuJCuz\nbYwxUUn5rqS4sTLbxhgTV5mTGGx8wRhj4iK9E4OV2TbGmLhL78RgZbaNMSbu0jsxWJltY4yJu8xI\nDDa+YIwxcZO+01V/+snKbBtjTAwyf7qqldk2xpiESN/EYLORjDEmIdI/Mdj4gjHGxFX6jjHk5EBO\nDmzY4MphGGOMqVbmjzEEAtCzpyUFY4yJs/RNDGDdSMYYkwDpnRhs4NkYY+IubRPDiPr1Wd6mjd9h\nGGNMxknbxDB01y7G9unD8pISv0MxxpiMkraJoQkwYskSxg8f7ncoxhiTUdI2MYBLDoHVq/0Owxhj\nMopviUFEWojIKyKyUES+EpETRaSliLwnIotF5F0RaVHdMbYAOe3bJyliY4zJDn62GB4H3lLVbsAx\nwCLgDmC6qnYFPgDujPTkLUBhXh4FI0cmI9YaFRcX+x1CWKkYl8UUHYspeqkYVyrGFC1fEoOINAdO\nVdVxAKq6S1U3AhcAE7zdJgAXRjrGmAEDGDxtGrmdOyc83mik6h9BKsZlMUXHYopeKsaVijFFq75P\n5+0MfC8i43Cthc+BW4C2qloGoKprReSASAconDQpKYEaY0y28asrqT5wLPAXVT0W1zN0B1C1cFP6\nFXIyxpg050sRPRFpC3yiqod490/BJYY8IF9Vy0SkHTDDG4Oo+nxLGMYYUwvRFNHzpSvJ++AvFZHD\nVPVroBfwlfdTAIwCBgKvR3i+XeDZGGMSxLey2yJyDPA0sA+wFLgGqAe8DHQElgOXqGq5LwEaY0yW\nSsvrMRhjjEmctFv5LCLnisgiEflaRIalQDzPiEiZiMzzO5YgETlIRD7wFg5+KSJDUiCmfUXkUxGZ\n48VU6HdMQSKSIyKzReQNv2MJEpFlIvJf7/2a5Xc8EH5Rqs/xHOa9P7O93xtT5G/9VhGZLyLzROR5\nEWmQAjHd7P2/i+rzIK1aDCKSAwTHJFYDnwGXqeoiH2M6BdgMPKeqR/sVRyhv4L6dqs4VkabAF8AF\nfr5PXlyNVXWriNQDPgaGqKrvH3oicitwHNBcVfv7HQ+AiCwFjlPVH/yOJUhExgP/UtVxIlIfaKyq\nP/ocFlDx2bASOFFVS32Moz3wEXC4qu4QkZeAf6rqcz7GdCTwAnA8sAt4G7hRVZdGek66tRhOAL5R\n1eWquhN4Ebcozjeq+hGQMv95wa0BUdW53u3NwEKgg79Rgapu9W7ui5v44Pu3EhE5COiDG+9KJUIK\n/f+MsCg1JZKC5yxgiZ9JIUQ9oEkweeK+xPqpG/Cpqm5X1d3Av4FfVveElPnDi1IHIPQffiUp8IGX\nykTkYKA78Km/kVR02cwB1gLTVPUzv2MC/gjcTgokqSoUeFdEPhOR6/0OhpBFqV7XzVMi0sjvoEJc\nivtW7CtVXQ08AqwAVgHlqjrd36iYD5zq1aJrjPsi1LG6J6RbYjAx8LqRpgA3ey0HX6lqQFV/DhwE\nnCgiR/gZj4icD5R5rSvxflLFyaraA/ef+Hdel6Wfqi5K3Ypbe+Q7EdkH6A+8kgKx7IfrxcgF2gNN\nReQKP2PyupBHAdOAt4A5wO7qnpNuiWEV0Cnk/kHeNlOF14ydAkxU1bDrQfzidUHMAM71OZSTgf5e\nf/4LwBki4ltfcChVXeP9/g54DdeN6qeVQKmqfu7dn4JLFKngPOAL773y21nAUlXd4HXb/B34hc8x\noarjVLWHquYD5bix2ojSLTF8BhwqIrneSP9lQCrMJEm1b5sAzwILVPVxvwMBEJE2wTLqXhdEb1xF\nXd+o6l2q2slbgX8Z8IGqXu1nTOAG6b3WHiLSBDgb1x3gG6+GWamIHOZt6gUs8DGkUJeTAt1InhVA\nTxFpKCKCe58W+hwTIrK/97sTcBEwubr9/SqiVyuqultEbgLewyW1Z1TV1zddRCYD+UBrEVkBFAYH\n6HyM6WRgAPCl16evwF2q+o6PYR0ITPBmj+QAL6nqWz7Gk8raAq95pV/qA8+r6ns+xwQwBHje67oJ\nLkr1lddnfhbwG79jAVDVWSIyBddds9P7/ZS/UQHwqoi0wsU0qKaJA2k1XdUYY0zipVtXkjHGmASz\nxGCMMaYSSwzGGGMqscRgjDGmEksMxhgTByIy2iswOFdEXvXKiITbL2whUBE5WERmettf8NYiISI3\neAX55ojIv0Xk8Bri6CQiX3gr1L8UkRtifi02K8kYY2IjIqcDBap6Tci2s3BrYQIi8hCgqnpnledF\nLATqFdyboqqviMgTwFxVfVJEmgYrF4hIP9x00/Oqia0+7rN9pzed9yvgJFVdG+3rsxaDMVEQkQ9F\n5NyQ+78SEVuHkd0qfatW1emqGvDuzsRVZqiqukKgZwKvercn4BaiBQthBjUFAlBRe2y0uHL2c4M1\ntbwChzu9/RtRi8W3abXAzRgf3Qi8IiIfAA2A+3ErkmtNROp5ZRNMeqruA/da3Id+VeEKgZ4gIq2B\nH0ISy0pcrSV3IpFBwO9xV7w809t8Ha5I34leJYiPReQ9VV3uVQ3+J5AH3B5LawGsxWBMVFT1K1z5\nlTuA4cAEVV0mIld739hmi8ifg/uLyJMiMsvr470nZHupiDwoIl8AFyb9hZg68cYAZuPKtPfz/t1n\ni0jvkH3uBnaqarVlJ8IdPtIDqvp/qnooMAz39wfui8nVXnWDT4FWQBdv/5WqegxwKFAQLIkRLWsx\nGBO9PwCzge1AD+8CKBfh+m8DXjK4TFVfBIaparm4ixLNEJEpIRdKKlPV4/x5CaYuVLUnVIwxDFTV\na0MfF5ECXEXcM/d+NhChEKiqrheR/UQkx2s1RCoQ+hLwRPB0wGBVnVZNvGtFZD5wKq6gX1SsxWBM\nlLwLDb2Eq1i7E1ejpwfwufet7TRc0x1ggNcqmA0cDoSWGH8peVGbZPHGoG4H+qvq9gi7hSsEGqx+\n/AHwK+/2wOB2ETk05Pl9gW+82+8Cg0JmL3XxCjB2EJGG3raWwCnA4lhei7UYjIlNwPsB943tWVWt\ndP1q7z/yEKCHqm4SkYlAw5BdtiQlUpNsY3HjT9NcYVVmquogETkQ+Juq9o1QCDTYkrwDeFFERuKK\n7z3jbb/Jm/G0A3e1yIHe9qeBg4HZXiXXdbjuyW7AIyISwP2Njva6QqNm01WNiYGIFAKbVPVRETkK\nd3GYU7yugFZAE2B/4EncDJR2wH+BW1R1soiUAkem2GUxjanEWgzG1JKqzheREcB0b376DtxF1r8Q\nkYW4OvzLcReHr3iaD6EaExNrMRhjjKnEBp+NMcZUYonBGGNMJZYYjDHGVGKJwRhjTCWWGIwxxlRi\nicEYY0wllhiMMcZUYonBGGNMJf8PqXT4IqFcJU0AAAAASUVORK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f34100550>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals, yvals, 'ro-', linewidth=2)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Change your sine plot so that the line is green and the data points are marked"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Multiple lines on a single plot\n", "\n", "If you do have multiple lines on one plot, it is always good to have a legend as well.\n", "To add a legend, specify the label='some label' when plotting each of the data and then\n", "call plt.legend().  You can specify where the legend is placed by specifying a location\n", "(see matplotlib's documentation for location details)."]}, {"cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f3413a208>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals2 = np.arange(2005,2013,1)\n", "yvals2 = [10,81,119,102,141,83,120,108]\n", "\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title('RBIs vs Year for Miguel Cabrera and Prince Fielder')\n", "\n", "plt.plot(xvals, yvals, 'ro-', label='Miguel Cabrera')\n", "plt.plot(xvals2, yvals2, 'go-', label='Prince Fielder')\n", "plt.legend(loc=2)\n", "\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Calculate cos(x) for all 'xpts' and store the results in a list or Numpy array 'c'.\n", "# Plot 'c' vs. 'xpts' and 's' vs. 'xpts' in the same plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Examples of More Line Styles\n", "We've seen how to change line thickness, line style, and line color.  There are quite a few options for line styles, colors, etc.\n", "\n", "For example, sometimes it is helpful to plot just markers (no lines connecting them).  Or, you might want to use a dashed line instead of a solid line or change to a differnet shaped marker.  This example just shows a couple more options.  There are tons of options available though -- see matplotlib's documentation or gallery."]}, {"cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [{"data": {"image/png": "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\nlblz57Jnzx6mT59OSkoK69aFdnTrjIyMIlnHGBOcUpEYNm3YwFuXX87D48YRn5DAw+PG8dbllwf9\n436s6/u64447GD16dPbz0aNH07NnT79lclbxvPTSS9SvX5+GDRsyYsQIoqKiWL/euaVyp06d+Oij\nj/y2d+GF/9znfNWqVVxxxRXUqlWLli1bMnHixKDifPXVV6latSpjxoyhUaNGADRo0IDXX3+dM844\nA4AHHniAxo0bU61aNc477zxmz57tt41Dhw5x2223UbVqVdq0acOSJUuy50VHR/PSSy9x9tlnU6VK\nFTIzM9mxYwc33XQTtWvXplmzZrz11lvZy8fHx3PzzTdzxx13UL16dUaPHs38+fM5//zzqVGjBg0a\nNKB///6kp6cH9fqMMXkrFYlh1ODBxK9bR2X3eWUgft06Rg0eXCTr+2rfvj379u1j9erVZGZmMmHC\nBGJjY/PsYz9t2jTeeOMNZs6cydq1a0lISAhYusiaf/DgQa644gpiY2PZtWsX48ePp1+/fqxatSpg\nnD/88AM33HBDvsu0bduWJUuWkJyczO23387NN9/MkSNHsudPnjyZW2+9leTkZLp168b111/vd6Y/\nfvx4vv32W1JSUhARrr32Wlq1asWOHTv44Ycf+M9//sP06dP9tnfLLbeQkpJC9+7dKVu2LG+88QZJ\nSUn89ttvzJw5k7fffjvgazPG5K9UJIbMbduyf9SzVAYyt28vkvVzyio1TJ8+nZYtW1K/fv08l504\ncSK9evWiRYsWVKhQgaFDhwZ9odaUKVOIjo6mR48eiAhnn302N954Y1Clht27d1OvXr18l7n99tup\nXr06UVFRPPjgg6SmprJ69ers+a1bt6Zr166UKVOGgQMHcvjwYebMmZM9f8CAAdSvX5/y5cszf/58\ndu3axRNPPEGZMmVo2rQpd911F+PHj89evkOHDlx77bUAlC9fnlatWtG2bVtEhMaNG9O3b19mzZoV\n1LExxuStRA2JkZeoBg04AH4/7geAqHx+kEO5fk6xsbFcdNFFbNiwgR49euS77Pbt2znvvPOyn2dV\n6wRj06ZNzJkzh5o1awLOPSwyMjIC7hOgVq1a7NixI99lXnnlFT766KPs5fbt28euXbuy5/vGKiI0\nbNiQ7T7JtGHDhn6xbtu2zS/WzMxMLrrooly3B/Dnn38ycOBAfv/9dw4dOkR6ejqtW7fGGHNsSkWJ\nIW7YMIY0a8YB9/kBYEizZsQNG1Yk6+fUuHFjoqOj+fbbbwNW19SrV4+tW7dmP8/quZSlcuXKHDx4\nMPv5zp07sx83atSImJgYkpKSSEpKIjk5mb179/Lf//43YIyXXXYZX375ZZ7zZ8+ezcsvv8ykSZNI\nTk4mOTmZqlWr+pVmtmz55xbeqsrWrVtp0OCf23j7Vok1atSIk046yS/WPXv28L///S/X5cHp1tuy\nZUvWrVtHSkoKzz77rA17YUwIlIrE0CQ6mv7Tp/NK9+4M6dSJV7p3p//06TSJji6S9XPz0UcfMXPm\nTCpWrJjvcrfccgsjR45k1apVHDx4kGeeecbvB/Kcc87hiy++4NChQ6xdu5YRI0Zkz7vmmmtYs2YN\nY8eOJT09nbS0NH7//Xe/6p68DBw4kL1799KzZ8/sZLRt2zYeeughli1bxr59+yhXrhy1atXiyJEj\nPP300+zbt89vGwsWLOCrr74iIyOD119/nQoVKtCuXbtc99e2bVuOP/54XnrpJQ4fPkxGRgbLly/n\n999/zzPGffv2UbVqVSpVqsSqVat45513Ar4uY0xgpSIxgPPjPmTsWOJnzmTI2LEF/lE/1vXB/4w3\nOjqac889N9d5vq666iruv/9+OnXqRPPmzenQoQPg1LEDPPjgg5QrV466devSq1cvYmNjs9etUqUK\n33//PePHj6d+/frUr1+fQYMGkZqaGjDWGjVq8Ouvv1KuXDnatWtHtWrVuPzyy6levTonn3wyV155\nJVdeeSXNmzcnOjqaSpUqHVXVc9111zFhwgRq1KjBuHHj+OKLLyhTpkyurzcqKoopU6awaNEioqOj\nqV27Nn369GHv3r15xvjKK68wbtw4qlatyt13381tt90W8HUZYwKz0VWLmVWrVnHmmWeSmppKVFSp\nyevHrDR8NowJxEZXLUG++uorjhw5QnJyMo8++ihdunSxpGCMCZuwlhhEZARwDZCoqmflmPcQ8DJw\ngqomudPeBDrjtO/GqeqiPLZbqkoMnTt35rfffqNs2bLExMQwfPhw6tSp43VYxUpJ/WwUhb6P9mVN\n4pqjpjev05z3X3zfg4hMYUXKHdxGAm8BH/tOFJGGwOXAJp9pnYFmqnqKiLQD3gXahzm+YuHbb7/1\nOgRTiq1JXMOs6FyuDyn4hf+mmAhrfYSqzgaSc5n1OvBIjmnX4SYQVZ0LVBMROy02xpgiVuQV1SLS\n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\nRK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a50f400>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals2 = np.arange(2005,2013,1)\n", "yvals2 = [10,81,119,102,141,83,120,108]\n", "\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title('RBIs vs Year for Miguel Cabrera and Prince Fielder')\n", "\n", "plt.plot(xvals, yvals, 'ro', label='Miguel Cabrera')\n", "plt.plot(xvals2, yvals2, 'gs--', label='Prince Fielder')\n", "plt.legend(loc=2)\n", "\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Logarithmic Axis Scales\n", "Options available for doing log-log and semilog axis scales available.\n", "\n", "This example also shows how to make separate figures -- call plt.figure() before\n", "plotting the data you want on each plot."]}, {"cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [{"data": {"image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a424048>"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a476dd8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["a = np.arange(10)\n", "\n", "plt.figure()\n", "xs = 10**(2*a)\n", "ys = 10**a\n", "plt.loglog(xs, ys, 'bo-')\n", "plt.title('log scale on both x-axis and y-axis')\n", "plt.show()\n", "\n", "# The same data plotted with plt.plot()\n", "plt.figure()\n", "plt.plot(xs, ys, 'bo-')\n", "plt.title('linear scale on x-axis and y-axis')\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["The same exact data is plotted in both of the above, just using different\n", "scales for the axes.  Note we can only really see a couple of the data points\n", "in the second plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["We can also do log scaling on only one axis (x or y)."]}, {"cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a470710>"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"image/png": "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\nTkSuQmCC\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a5a9358>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["a = np.arange(10)\n", "\n", "plt.figure()\n", "xs = 10**(0.25*a)\n", "ys = a\n", "plt.semilogx(xs, ys, 'bo-')\n", "plt.show()\n", "\n", "plt.figure()\n", "xs = a\n", "ys = 10**(0.5*a)\n", "plt.semilogy(xs, ys, 'bo-')\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Note, these were straight lines as plotted, but would have looked very different\n", "on an ordinary plot (using plt.plot())  "]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Plot e^sin(x) at each value in 'xpts' with a log scale on the y-axis."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Some Fancier Options"]}, {"cell_type": "markdown", "metadata": {}, "source": ["How to add multiple subplots on one figure (you could also do two separate plots)"]}, {"cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [{"data": {"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXeYVEX2sN8DiiTJIDmDJAkCii4qoCgmxLSI4JD0WxOK\nEZRlAVnd1VUU9bfqKgKjIEZWFAOi4ooBRGDIioQhSQ5DEoaZ8/1RNdDMdE+ie7p7OO/z9DP33qpb\nde6d7nvuOXXqlKgqhmEYhhFrFIm2AIZhGIYRDFNQhmEYRkxiCsowDMOISUxBGYZhGDGJKSjDMAwj\nJjEFZRiGYcQkpqCMiCEiL4nIsALoZ7yIPBahtkeIyBuRaNswjOwxBWXkGRFZKyJ/iEiFTMcXiEi6\niNQGUNU7VPXx6Eh5nFxVReQ1EdkkIntEZJlXPCVy2URUJwuKSHo+zhkhIodFJEVEdorIbBHpEFB+\nkYik+fIUEVkvIiMz9ysi9cNwCXmV/Q0ReT3TsYtEZLuInFHQ8hjRwxSUkR8UWAP0yjggIi2AEkT5\nYZ4ZESkP/ACcBpyrqmWBrkA5oEGY+ypaEOfkgSmqWgaoBMwC3s1UvlFVy/g6HYGBItI9oDxa/8t7\ngW4icjGAiJwG/Ae4T1W3hLMjEbFnYAxj/xwjv7wB9A3Y7wtMDKyQ2fUmIg97K2aDiAwMfEMXka9F\nZEBA3b4i8m3AfhMRmSEiO0RkuYjcmEs5HwBSVPUWVV0PoKobVfU+VV3i235ORNZ56+onEemYqY0S\nIjLFWxrzRKRlgFxr/HUlAftEpIiIVBOR90Rkq4isEpFBAfVHiMi73krYDfQVkfYi8r2I7BKRjSLy\ngoicEtC/Bpzfz7eZ4v/2IgdUNR2YBFQXkYoh6iQD3wPNAg5LQL/t/b3ZIyK/i8jTwdrx1ukVAftF\n/X1oLSKn+eve7q91johUDiLLTuAe4D8iUhIYCfymqm/4NkVEHhWR33zbk0WkbEDZu17GnSLylYg0\nCZDnDRF5UUQ+FZG9OMVsxCimoIz88iNwuoic6d9CewJvEvBQC0REugGDgS5AQ6ATOb+hqz+3JDDD\nt18JuAn4d+CDJxsuBj7Ioc5coCVQHpgMvCsixQLKuwNv+/K3gP9msnxuAi7HWWUKfAQsAKr5/u8V\nka6Z2ntHVcvhFMcR3L2pAJyHu0d3Hr0JqkUD7sNY4DJv9ZwPLMzpBvhr6QvsAHaFqNMI+BPO2gzG\nWOA5b4E2AN4JUW8ycHPAfjdgm6ou9DKUAWr4a70dOBisEVV9D5iPu9+3ArcFFN+Pu98dgZrAPuCF\ngPKPvIxVgSW4l6lAegEjVPX0bK7XiAFMQRknQoYV1RVYDmzKpu6NwHhVXaGqf+DeioMqsyBcBaxR\n1UR1JAHv+zZzoiLwe3YVVHWyqu5W1XRVfRbnDjwzoMrPqjpVVdOAMUBxoENA+VhV3aSqh4D2QCVV\nfVxV01R1LfAaToll8IOqfuT7PqSqC1R1rr+2dTh31kUhxE0DzhKR4qq6RVWXZ3NpPUVkJ3AAGAjc\n4K2pDGp4K2MPsAL30vFdiLYOAw1FpKKqHlDVuSHqvQV0F5Hifr+XPwaQivt/NPbXukBV92Uj/104\nZT1KVQO/W38BHlXVzap6GBiN/y74dhO9jIeBx4C2cvx449QM+VU1NZv+jShjCso4Ed7EvS33AxJz\nqFsdWB+wvz5UxSDUATr4h+lOEdnl+83NgPkOnCUTEhF50Lumdvm2M8ZtssiqLrvyBtz1ZLAhk6w1\nMsn6CFAlWHu+/0Yi8pF3S+0GHs/Uf0bfB3CW6h3A7/6cMzPXC+BtVa3g+14CtMtUvlFVK3irqBzw\nB6H/jwNxSnuFd81dGaySqq4ClgFXe6XQHWdVgXuh+RyY4t28/5RsxuBUdSuw3bcXSG3go4x7DCwC\n0kWkinexPuXdn7uBlTirNuj/04htTEEZ+ca/7a/BuVtycqP9jnPHZFA7U/l+oGTAftWA7fXALP8w\nraCq5f3g/t25EHMmcG2oQj/e9BDOuiivquWBFI637moF1Bd/HRsDygNdleuB1ZlkLauqV4eoD/AS\nzgJt4N1+wwhhXarqF6p6Ke7+/AK8GuraAs7ZibM6RkqIKDhV3YtTJFeFKF+lqjeramXgKeA9CR0F\nOQX3AnENsFRVV/s2jqjqaFVtjnNPXg0k5CR/ENYDXTPd41JeoSXg3Iqd/L1siLuXgfczpgJ5jNCY\ngjJOlAFAF1UNOpYQwDtAf3HBDiWBv3L8g2IhcJ2IlBCRhrg39gw+BhqLSB8ROUVEThWRdjlYDxmM\nAcqIyETx4e8iUkNEnhEXeXg6zvW0Q0SKicjf/LFA2opID/+2fx/O0pgTor+5wF5xgRPFfZBAcxHJ\nbL0EcjoukOOAH1e7I1glbyF09/cvFTf2kpaLe4Cq/gp8BgwJbDKg7dI4d9zSEH33FpEMK2QP7n8X\nKvx9CnCpv44M6wkR6SQiLfyY5T5/DXkOoQdeAf4hIrV8u1VEJOMF4HTgELBLREoBT2AKKW4xBWXk\nh6M/eFVdo6rzg5Udd4LqZ8DzwNfArxwbnD7k/z6Le2BtBsbj3IcZ5+7DPfBuwo1zbQL+iRsryl5Q\n1V24t/VUYI4fb/kC2A38hnM5fe5lWoMbr8nsAvoQ51rbBfQGrvPjUVmu14/xXAW09u1txVk5ZbIR\n80Ggt4ik4B6+U0LUK4ILENiIc31dSAhlFoKngdsCFE018fOgvKzl/PUdvZyA7W7AUl/3WaCnH3PL\ngqpuxv1/O+CCSzKoCryHU3BLcd+FnCZBB/s+PQN8Cnzp/5+zOea+HI+z1jcBi31ZTu0ZMYpoBBcs\nFJFxuB/rFlVtmansAeBfuAHlnf7Y8zh30X6gn4/8MQoh3lJYDJyWaeDeMAwDiLwFNR64LPNBEamJ\ni/xKDjh2Oc4H3wjnL385wrIZBYx3kxUTN3n2SWCaKSfDMEIRUQWlqrMJPu/iWdzAdCDX4COIVHUO\nUDbUgK4Rt/wF5/JaiXO53Zl9dcMwTmZOyblKeBGXSmW9qi52AVFHqcHxvv+N/lhYU5sY0UNVL4+2\nDIZhxA8FqqB8WOqjOPfeibRjA52GYRhxjKrmOFG/oKP4GgB1gSQRWYObTzJfRKrgLKZaAXUzzzU5\nDlWN6c+IESOiLoPJaDKajCZjrHz+1qkTSt7CKAtCQR2dJKeqS1S1qqrWV9V6uBn4bdRNsJuGn7Qn\nblmA3RrmzMWGYRhGdChSrRr783pORCTxiMhkXIbkxuKyRffPVEU5prw+AdaIyG+4uSA2gG4YhlEY\nOHCAftu3M6J48TwpqYiOQanqzTmU18+0n5vUNXFBp06doi1CjpiM4cFkDA8mY3iIORm3bIHu3anT\nuDGDFi7k6dGjYdKkXJ0a0Ym6kUJENB7lNgzDOKlYsQKuuAJuuQVGjgQfuS0iaC6CJAo8zNwwDMM4\nCfjf/+DGG+HJJ6Ffv3w1EekxqHEiskVEFgUce0xEkkRkgYh8JiJVA8qeF5GVIrJQRFpHUjbDMAwj\nQkyeDDfc4P7mUzlB5HPxdcRlLU5Un4tPREqrX6RM3FLYzVT1DnHLRN+lqleKyLm4ReA6hGjXXHyG\nYRixhio88QT85z8wfTq0aBG0Wky4+FR1tojUyXQscAXNUhxLt9+dgFRHIlJWRM6wUHPDMIw4IDUV\nbr8dFi6EH36A6tVzPicHojIGJSJ/x8152g109oct1ZFhGEY8smePG28qVgy++QZKlw5Ls1FRUKr6\nV+CvIjIEGASMzGsbI0ceO6VTp06xF1ppGDFA8po1TBg+nPSNGylSowb9Ro+mTr160RbLKEysXw9X\nXgkdO8Lzz8MpWdXKrFmzmDVrVp6bjniYuXfxfaSZ1oPyZbWA6araUkReBr5W1bd92QrgomAuPhuD\nMoycSV6zhhe6dmXUqlWUwi2yNqJBAwZ98YUpqTxiij4ECxbA1VfDfffB/fcfDSPPidyOQUU8/xIu\n997igP2GAduDgHf89hU4ZQVuJc4fs2lTDcPInpE336z73LD10c8+0JG9e0dbtLhi7erV+kCDBkfv\n5T7QBxo00LWrV0dbtOgyfbpqpUqq776b51P9MzxH/RFRF59PddQJqCgi64ARwJUiciaQhluw8Hav\ncT4RkSt8qqP9QOa0SIZhZMemTfDTTzBvHsybR/rMmZTKVKUUkL5pUzSki1smDB9+1AoFdw9HrVrF\n08OHM+LNN6MpWvR4+WUYNQqmTYPzzotYN9FIdTQ+m/qFJtWRYUSUbducIgpQSBw+DO3bQ7t2cMcd\nFClRgv1Tpx6npPYDRZKT3fmVK0dL+rgifcOG4Ip+Y8jFFgov6ekwdCh8+CHMng0NGkS0O8skYRix\nzq5d8PPPxxTRTz+5qKl27dwnIcENTtepc9wYQL+zzmLEokXHj0HVq8egTp3c/JS//x0GDoQiBb3q\nThwxaxZFFi5kP2RV9AsXwqefQrduuR57iWv++MN9137/Hb7/HipWjHiXkZ6oOw64CtiixybqPgVc\nDRwCVgH9VTXFlz0CDACOAPeq6owQ7Wok5TaMqLF3rxt4DrSMNm+GNm2cMsqwkBo0yJViOTq4v2kT\nRapXPza4n5QEd9zhRlVeeglaW+KW41i3Dh56CObMIXnIEF545pmswSYPPkid55+HKlXgn/+EDkHz\nChQOtm+Ha66BWrVgwgQoXvyEmsttkEQ0MklcAnylquki8k/cYNkjItIMmAS0xy1WOBNoFEwTmYIy\nCgUHD7pJjYGuuuRkaNnymHXUvj2ceSYULRr+/tPT4fXXYdgwuPlmeOwxOP308PcTT/zxB/zrX/Dc\nczBoEDz8MJQsGVrRHzkCEye6RKjt27ssCk2aRPsqwsvKlS7h6w03wOOPh8XijgkF5QXJLsy8B3C9\nqt4iIkNxyupJX/YpMFJV5wQ5zxSUEXXyFHp8+DAsWnTMKpo3D379FZo2PWYVtWsHzZvDqacW7IVs\n2wZDhsCMGfDss+5BdDK4rAJRdeMq998PZ58NTz8Ndevm/vyDB+HFF+Gpp6BHD6ewatSIlLQFx3ff\nwfXXu5eX//f/wtZsLIWZ1wEWhSibBvTy2y8ANweUvQZcF+K8PIc1GkY4yTb0ODVVNSlJ9bXXVG+/\nXbVdO9USJVTPOku1f3/V//s/1blzVQ8ejPZlHM+336o2b6562WWqK1dGW5qCY9ky1UsvVW3WTPWL\nL06srZ07VYcMUa1QQfXhh91+vPL226qVK6t++mnYmyYWwsyzQ0SGAamq+lZ+zrdMEkY0CRl6fM45\njDhwwPnqMyyjPn3cGE+pzLFgMUbHjm7867nn3HjKPfc4F9cJjjfELHv2OMsgMRH++le4884Tt17L\nl3fjUYMGuTDsxo3dWNagQVCiRHjkjjSqzs35wgvwxRfQqtUJN5nfTBJRsaCAfsB3wGkBx4YCQwL2\nPwPODdFm2DW6YQTlyBHV5GTVWbNUJ0xQHTFCNSFB/1a27HETYDM+f2vTRnXPnmhLfeIkJ6tee61q\no0aqM2ZEW5rwkpamOn68arVqqgMHqm7ZErm+li9Xve461Zo1VV991VnXsUxqqrP6W7ZUXb8+Yt0Q\nQxaU+I/bEekGPARcqKqHAupNAyaJyLO4JLENgbkFIN9Jh6VtCUDVLUm9Zo37rF17/Pb69VCpkhuP\nqFfPfS66iCIbN7L/yy+zhh43awZlykTlUsJK7drwwQfw8cdu7OHcc2HMmLBkqI4qc+c6a0bEjTm1\nbx/Z/po0gfffhzlz3DjfM8+4QIoePWJvnG/vXujZ0wXPfPttbHyPc6PF8vsBJgObcCHl63DZIVbi\nMkjM959/B9R/BPgNWA5cmk27kVLshZ6TLm1Lerrq9u2qP/3kUrI89ZTqHXeoXn65apMmbmyoUiXV\n9u1V//xnN27w0kuqn32mumJFyHGik+o+7t+v+uij7j6NHRv7VkAwNm9WHTDAWU0TJjgrqqBJT1f9\n5BNnnXTo4KzyWGHDBtXWrVVvvVX18OGId0cuLaiIR/FFAoviywFVN7lz0yb32bjx6PaoadN4MNPM\n+P3A0+XLM6JlSxdmfPrp7u0pYzs3n+LFw/pGmCcrb+/e0BbQmjVOrgzrp169462hOnXyHVodMvS4\nsLJ8uRun2bPHpbo555xoS5Qzqakuuu6JJ6BvXxg+HMqWja5M6elupdnhw6FZM/jHP9zUgmixaBFc\ndZX73w4ZUiCWXcyEmUeCk1pB7d17TPEEfgKUEJs2OYVRo4ZzyQR8RrzyCqOWLs3S7Ii2bRn11FOu\n/YxPSsrx+9l90tPzptCyUYDJ27fzQrdux0+MrFWLQaNGUefgweOV0Jo1LsQ3s+IJ3C5XLvbcKfGK\nKkya5Ab+e/RwD/7y5aMtVXBmznSBHrVqwdixsTc/6dAheOUVdw+7doXRo/MW2h4OZsxwQTxjx0Kv\nXgXWrSmoKJHv8Z0//nApRIIpm8DPkSPHK54gSohq1UJGjI3q04cHJ03KakH17n1iiS8PHw6tvPKi\n6PbuZVRKCg+SNbXM01WrMuLqq7MqoSpVTAEVNLt2uci3Dz5wc3/69Imd/8HatfDAAy4i8dlnoXv3\n2JEtGHv3urGpF16AW25xE6cLIk/i66/DI4/Ae+/BBRdEvr8AYmIeFDAOtyLuooBjNwBLcNnMz85U\n/xHcGFVcjkEFHZeoX1/Xfved6pw5qlOnujkww4a5+TCXXqraooWbM1GsmGqdOqrnnad6/fWqgwap\n/uMfqhMnqs6c6eZq7N7t/NjhljHGxk7+1qlT8Ai5zp2jLZqRmblzVdu2Vb3oItWlS6Mry/79qn/7\nm/s9jR4de/PMcmLzZtW771atWFF11CjVvXsj0096unsG1a/vxlmjALkcg4q0guoItM6koM4EGgFf\nBSoooCmwAJfAti4uWEJCtBup+3ZCjOzdO/j6O8WLux9x9+4uhPOxx9wkzk8+UV24UHXr1gIdtF27\nerWO7N1b/9a5s47s3TumlJNqNvfR1jGKTY4cUX3hBRdEMXSoUxQFSXq6C4CpXVu1Z0/VdesKtv9w\n89tvqr16qVat6u7roUPha/uPP1Rvvln13HMjG16fAzGhoJwcwTNJAF9nUlCZ50F9SpzNg7I3//AQ\nD1aeEYRNm9yDtU4d1WnTCqbPxYtVu3RxWTpiKSouHMyf77J61K+vOnnyib/E7tiheuGFbl7WgQPh\nkTGf5FZBxVKe/RrA+oD9jf5Y3FCkalX2Zzq2HygS73NHCpg69eox6Isv3LhY58483bu3LVMeD1Sr\n5qLTXnsNHnzQBVGsWxeZvnbtgnvvhS5d4NprYf58uOiiyPQVLdq0gc8+g1dfdWNp7dq5oAbNx/j7\n6tVw/vlu3te778ZNVou4XQ8qFlMd9StalBElSzLqwIHj0/KPHh1t0eKOOvXqnbyrlcY7l1ziQpf/\n9S+XePXhh+G++8KTBDctDcaPdwEaPXrAsmVuInVhpksXN9H3/ffdJOOaNV06pdxOMp4zxynxYcPg\nrrsiK2sI4irVkebOxRdfqY4mTFBt3FjXJiXF9PiOYRQoq1a5SdHNmql+882JtfX9924s9/zzVX/+\nOTzyxRuHD6u+/LJq9eqqN96o+ssv2df/4AM3NvjRRwUjXy4hnBN1RaQUcFDdGk6NgSbAp6qamotz\n6+KW2zgr0/GvgQdV9We/n7Ee1Lk4194XxMt6UAsWwKWXwqxZbrkEwzCOoerC0QcPhosvdpZVXsKo\nf//dTSD98ksX0n7zzbEdNl4QHDjg5i4984xbHmXECJL/+OPYFJfq1elXty51JkyAadOgbdtoS3wc\nYQ0zB34GSuIUx1rgXWBSLs4LluqoB26s6SDwO07RZdSPv1RHO3ao1qunOmVKtCUxjNgmJUX1/vvd\nEg6vvJLzoP+hQy41VcWKbgmLlJSCkTOe2L5d9YEHdG2ZMvpAuXLHBxadeqqu/fbbaEsYFMJsQc1X\n1bNFZBBQQlWfEpGFqhqVdaJjxoJKT3cpQpo0cYk0DcPImUWL4Pbbjy43n1y2bNbJ7b/84oIgGjZ0\ny380ahRtqWOaUT168OCHH4Z/An6EyK0FldsgCRGR84DewEB/LAJrUMcZjz0G+/fDk09GWxLDiB9a\ntoTZs2H8eJIvvpgX0tIYtWfPscCiqVMZVKkSdf79b7jyymhLGxek+/sXSCkgfdOmaIgTNnIbZj4Y\n536bqqpLRaQ+LsghW0RknIhsEZFFAcfKi8gMEflFRD4XkbIBZc+LyEoRWSgiUbHOcs306S6c9u23\nC36JbsOId4oUgYEDmdC581HlBH7hxwMHmHD++aac8kCRGjUK5RSXXCkoVf1GVbur6pN+f7Wq3pOL\nU8cDl2U6NhSYqapn4rJJPAIgIpcDDVS1EfAX4OVcXkPBs2oV9O8P77wDVatGWxrDiFvSd+wI/ua/\nZUs0xIlb+o0ezYgGDY4qqYwpLv3ifIpLti4+EfkICDnYo6rdsztfVWeLSJ1Mh68BMmbUTcRZYkP9\n8UR/3hwRKSsiZ6hqbH1TDxyA66+Hv/3NTXwzDCPfZLz5Z1n4Mc7f/Auao5PbA5Z/GVQIln/JNkhC\nRLKdmq2q3+TYgVNQH6lqS7+/U1UrBJTvVNUKXhn+Q1W/98dnAg+r6vwgbUYnSEIVEhLcdmKihboa\nxgmSvGYNL3TtevzSKg0aWOaQQk5YgiRyo4DCQL40TVQySfz73y4C6YcfTDkZRhgorG/+xvHkN5NE\nThZUI+BRYBcwBngVuABYBQxU1Xk5dpDVgloOdFLVLSJSFfhaVZuKyMt++21fbwVwUTAXX1QsqO+/\nd6lVfvgBGjQo2L4NwzAKEbm1oHIKkhgP/ICbbDsHeB2oBDwI/F9uZfGfDKYB/fx2P+DDgOMJACLS\nAdgdM+NPmzdDz55ugS9TToZhGAVCThbU0cm4IvKbqjYMVpbN+ZOBTkBF3MKFI4D/4jJR1AKSgT+r\n6m5f/0WgG84V3T/Y+JOvV3AWVGqqS37ZqROMGlUwfRqGYRRiwjVRNz1gOyWbsqCo6s0hii4JUf/u\nnNoscIYOhZIlXdSeYRiGUWDkpKCa+Em2AjQImHArQP2IShYLvPMOTJ0K8+ZBUUucYRiGUZDkpKCa\nFogUscjSpW7tlBkzoEKFnOsbhmEYYSXbIAlVTQ72wWUj73giHYvIvSKy2H/u8cdCpkEqUFJS4Lrr\n4Omn3aqWhmEYRoGTrYISkTIi8oiIvCgil4pjELAa+HN+OxWR5riks+2A1sBVItKAEGmQChRV6NfP\nrWLZt2+Bd28YhmE4cnLxvYGbA/UDcCtuTpQAPVR14Qn02xSYo6qHAETkf8B1QHdc1B+4NEizcEqr\n4HjqKdi0Cd56q0C7NQzDMI4npzDzxepXwhWRorgFBmur6h8n1KlIE1y4+Xm4xQxnAvOAPsHSIAU5\nPzJh5l9+CX36wE8/Qc2a4W/fMAzDCFuY+dEl3VU1TUQ2nKhy8m2tEJEnccu67wMWAGnBqoZqI+yp\njtatg969neVkyskwDCNsRCrVURoczeAuQAnggN9WVS2T5x6D9/M4LvDiXoKkQQpSP7wW1B9/wIUX\nwo03wkMPha9dwzAMIwvhShYbsck/IlJZVbeJSG3gWqADUA+X/uhJoC/H0iBFlnvvhdq14cEHC6Q7\nwzAMI2dyu+R7JHhfRCrg3Ih3qmqKd/u9IyID8GmQIi7F66/D//4Hc+dahnLDMIwYIlsXX6wSNhff\nzz9Dt25OQTU9eeckG4ZhFCThymZeeNmxA264AV56yZSTYRhGDBI1BSUi94nIEhFZJCKTRKSYiNQV\nkR9F5FcReUtEIuOCTEuDXr1cUMQNN0SkC8MwDOPEiIqCEpHqwCDgbL+Q4SlAL1xwxDOq2hjYjcs2\nEX5GjIAjR+CJJyLSvGEYhnHiRNPFVxQo5a2kErhFETsD7/vyibjovvDy4YeQmAhTpsAp0YwRMQzD\nMLIjKgpKVTcBzwDrgI3AHmA+bhXdjHWmNgDVw9rxypVw221uGY0qVcLatGEYhhFeomJCiEg54Bqg\nDk45vYtbSTfX5DmTxP79LkP5Y49Bhw55E9gwDMPINxHJJBEpROQG4DJVvc3v34LLy3cDUFVV00Wk\nAzBCVS8Pcn7ewsxVXRqjYsVg/Hib72QYhhFFwpWLL1KsAzqISHFcstiLgZ+AisCNwNuEM5PE88/D\n8uXw/femnAzDMOKEqE3UFZERwE24TBILcMt51ASmAOX9sT6qmhrk3NxbUN9+60LJf/wR6tULk/SG\nYRhGfsmtBVW4M0n8/ju0awevvQaXZ/EUGoZhGFHAMkmkprqJuH/5iyknwzCMOKTwWlD33gurVsG0\naVCk8OphwzCMeCOmLSgRaSwiC0Rkvv+7R0TuEZHyIjJDRH4Rkc9FpGy+Opg8GaZPhzfeMOVkGIYR\np0TdghKRIrhJuecCdwM7VPUpERkClFfVoUHOCW1BLV4MXbrAzJnQqlUEJTcMwzDyQ0xbUJm4BFil\nqutxk3cn+uMTgR55amn3bjcZ99lnTTkZhmHEObGgoHoCk/32Gaq6BUBVNwO5z0eUng4JCW59pz59\nwi+lYRiGUaBENVuqiJwKdAeG+EOZ/XYh/Y9ZUh19951b4+m998ItpmEYhnECxFWqo6Odi3THLffe\nze8vBzqp6hYRqQp8rapZVhPMMgb1+efQvz/MmwfVw5tf1jAMwwgv8TIG1Qt4K2B/GtDPb+cu1dHa\ntc6199ZbppwMwzAKEdFMdVQSSAbqq+pef6wC8A5Qy5f9WVV3BznXWVAHD0LHjm7M6b77ClJ8wzAM\nI58U/lRH6ekwcCAcOOCsJ0sCaxiGERfEejbzE2ZUhw7027mTOgsWmHIyDMMohERtDEpEyorIuyKy\nXESWisi5eckk8eDcubxw6BDJ27YVpNi5Jj8RKwWNyRgeTMbwYDKGh3iQMbdEM0hiLPCJj9JrBawA\nhgIzVfVM4CvgkVAnlwJGrV/PhOHDC0LWPBMPXxKTMTyYjOHBZAwP8SBjbolWLr4ywAWqOh5AVY+o\n6h7ymEmiFJC+aVMkRTUMwzCiRLQsqHrAdhEZ7xPG/sdH9eUpk8R+oIiFlhuGYRRKohLFJyJtgR+B\n81R1nohFheMMAAAgAElEQVQ8C+wF7lbVCgH1dqhqxSDnx1/ooWEYhnGUWI7i2wCsV9V5fv993PjT\nFhE5IyCTxNZgJ+fmwgzDMIz4JiouPu/GWy8ijf2hi4Gl5CeThGEYhlEoiWYmiVbAa8CpwGqgP1CU\nXGSSMAzDMAo/cZlJwjAMwyj8RDtZbJ4RkW4iskJEfvWr7sYUIjJORLaIyKJoyxIKEakpIl/5CdKL\nReSeaMuUGRE5TUTmiMgCL+OIaMsUChEp4qNRp0VblmCIyFoRSfL3cm605QlGsIn70ZYpEBFp7O/f\nfP93T4z+bu4TkSUiskhEJolIsWjLlBkRudf/pnN89sSVBeWXh/8VN2a1CfgJuElVV0RVsABEpCOw\nD0hU1ZbRlicYPgClqqouFJHSwM/ANbF0H8ElFFbVAyJSFPgOuEdVY+4BKyL3AW2BMqraPdryZEZE\nVgNtVXVXtGUJhYhMAL5R1fEicgpQUlVToixWUPxzaANwrl8JPCYQkerAbKCJqh4WkbeB6aqaGGXR\njiIizXErWLQHjgCfArer6upg9ePNgjoHWKmqyaqaCkzBTe6NGVR1NhCzDwJwc8xUdaHf3gcsB2pE\nV6qsqOoBv3kaLuI05t6mRKQmcAVuPDVWEWL4tx5i4n5MKifPJcCqWFJOARQFSmUoedyLfCzRFJij\nqodUNQ34H3BdqMox+6UNQQ0g8EuxgRh8sMYTIlIXaA3Mia4kWfGuswXAZuALVf0p2jIF4VngIWJQ\neQagwOci8pOI3BZtYYIQbOJ+iWgLlQ09OX4du5hAVTcBzwDrgI3AblWdGV2psrAEuMDnXS2Je7mr\nFapyvCkoI4x49957wL3ekoopVDVdVdsANYFzRaRZtGUKRESuBLZ4a1T8Jxb5k6q2wz0M7vJu6Fji\nFOBs4P9U9WzgAG5eZMwhIqcC3YF3oy1LZkSkHM6jVAeoDpQWkZujK9Xx+GGEJ4EvgE+ABUBaqPrx\npqA2ArUD9mv6Y0Ye8S6A94A3VDWm55t5d8/XQLdoy5KJPwHd/RjPW0BnEYkZf38Gqvq7/7sNmIpz\nlccSmSfuv4dTWLHI5cDP/l7GGpcAq1V1p3effQCcH2WZsqCq41W1nap2Anbj4gqCEm8K6iegoYjU\n8dEpN+Em98Yasfw2ncHrwDJVHRttQYIhIpUyllvx7p6uuIz3MYOqPqqqtVW1Pu67+JWqJkRbrkBE\npKS3lBGRUsClODdLzBBi4v6yKIqUHb2IQfeeZx3QQUSKi4jg7uPyKMuUBRGp7P/WBq4FJoeqG1cL\nFqpqmojcDczAKddxqhpT/wARmQx0AiqKyDpgRMbgb6wgIn8CegOL/RiPAo+q6mfRlew4qgETfcRU\nEeBtVf0kyjLFI2cAU33+ylOASao6I8oyBeMeYJJ3oWVM3I8p/JjJJcD/i7YswVDVuSLyHs5tlur/\n/ie6UgXlfRGpgJPxzuwCYuIqzNwwDMM4eYg3F59hGIZxkmAKyjAMw4hJTEEZhmEYMYkpKMMwDCMm\nMQVlGIZRiBCRp3zS3YUi8r5PJRWsXtDE2yJSV0R+9Mff8nMmEZG/+CS0C0TkfyLSJAc5aovIzz47\nyGIR+Uuer8Wi+AzDMOITEbkI6Keq/QOOXYKbk5cuIv8EVFUfyXReyMTbPsnse6r6roi8BCxU1VdE\npHRGxhkRuRoXIn55NrKdgtMxqT5Efylwnqpuzu31mQVlGAWIiHwrIt0C9m8UEZvfZZwIx1kZqjpT\nVdP97o+4jDuZyS7xdhfgfb89ETeZNiOxdAalgXQ4mjPzKXHL4yzMyPfok/6m+volyEfygriaqGsY\nhYDbgXdF5CugGPA4LrtDvhGRoj61jXFykt2DfwBO+WQmWOLtc0SkIrArQMFtwOX1cx2J3Ancj1sJ\nvYs/PBCXmPZcn+HnOxGZoarJPtv/dKAB8FBerCcwC8owChRVXYpLzzUUGA5MVNW1IpLg30Dni8iL\nGfVF5BURmet9+H8NOL5eRP4hIj8DPQr8Qoyo4seI5uOWebnaf2/mi0jXgDrDgFRVDZlKKFTzoQpU\n9d+q2hAYgvv+gnvBSvBZaeYAFYBGvv4GVW0FNAT6ZaQ5yi1mQRlGwfMYMB84BLTzi7hdi/PPp3ul\ndJOqTgGGqOpucYs2fi0i7wUsLLlFVdtG5xKMaKKqHeDoGFRfVR0QWC4i/XDZ67tkPRsIkXhbVXeI\nSDkRKeKtqFAJud8GXsroDhikql9kI+9mEVkCXIBLYpsrzIIyjALGL8T4Ni6TfCouv1s7YJ5/C70Q\n5xIB6O2tpPlAEyBwyZG3C05qI17wY5wPAd1V9VCIasESb2esavAVcKPf7ptxXEQaBpx/FbDSb38O\n3BkQ7dfIJymuISLF/bHyQEfgl7xci1lQhhEd0v0H3Bvo66o6IrCCfyDcA7RT1b0i8gZQPKDK/gKR\n1Ig3XsCNb37hkprzo6reKSLVgFdV9aoQibczLPOhwBQRGY1LODvOH7/bRwgexq0a3tcffw2oC8z3\nWdS34tzOTYFnRCQd9x1/yru4c42FmRtGFBCREcBeVR0jIi1wC+B19C6WCkApoDLwCi7iqiqQBAxW\n1ckish5oHuNLoxvGCWEWlGFEGVVdIiKjgJl+fsph4HZV/VlEluPW9EkGZgeeFgVRDaNAMQvKMAzD\niEksSMIwDMOISUxBGYZhGDGJKSjDMAwjJjEFZRiGYcQkpqAMwzCMmMQUlGEYhhGTmIIyDMMwYhJT\nUIZhGEZMYgrKMAzDiElMQRmGYRgxiSkowzAMIyYxBWUYhmHEJKagjKggIp+IyC3RlgNARDr6rOG5\nqTvCr8sUqnyNiIRaxdQwjDxgCsoICyKyVkQOiEiKiPwuIuNFpGSo+qp6haqGfNBHSMZ0EdnrZdwr\nIju9LLNVtWkemorIEgB+ddM1+ThvvIgc8te1XUQ+F5EzA8r7isgRX54iIr+JyO2Z+k33S30UKCLy\njYj8LdOxBBFZmbEaq3HyYgrKCBcKXKmqZYCzcUuY/zVYRb/qZjRQoKWqllHV01W1QpTkyIKIFPWb\n+VV+T/p7XwPYxLFVUDP43l93GeAG4CkRaRVQHq11d24FBotIUwARqQw8DQxU1T/C1Yl4wtWeUTCY\ngjLCiQCo6u/Ap0ALABH5WkT+LiKzRWQ/UM8fG+DL+4rItyLyLxHZKSKrRKTb0UZFyovI6yKyUUR2\niMgHAWVXicgCEdnl2z8rB/myPKRE5CK/Qm3GfjUReU9EtnpZBoVsUOQWbz1uE5FHM5WJiAz1Fss2\nEZkiIuV8WYbVMkBEkoEvg7Q9REQ2eKtnuYh0zubaAFDVQ8A7QKts6izELYIY1GoUkStEZKnvd72I\n3B+kTjF/z5sFHKvkrehKIlJRRD7ydXaIyDchZFkJPAGM8wrkeeBdVf2fb/M0ERkjIuu8Zf6iiBTz\nZRVEZLr/P+0QkWkiUj1Anm9F5DER+R7YB9TK6f4ZsYUpKCPsiEgt4ApgfsDhPri35dOBdUFOOwf3\n0KwI/IvjLYA3gRK4B2oV4FnfTxtf7zagAm559Gkicmo+xFbfpgAfAQuAasDFwL0i0jXIdTYD/g30\nBqp72WsEVLkH6A5c4Mt3+fqBXAg0AS5T1WRVre/bbgzcBbT1Vs9lwNqcLkJESgE3AyuzqdMeaATM\nC1HlNeA2328L4KvMFVT1MPA+0Cvg8J+BWaq6HXgAWI+7J1WARzO3EcAY3IvDe8B5wMMBZU8Ddbwc\njYC6wDBfVgT4D1DT1zkMPJep7T5AP6AMsCEbGYxYRFXtY58T/gBrgBRgp99+ATjNl30NjMxU/2tg\ngN/uC/waUFYCSMc92KoCR4AyQfr8NzAq07EVwAUhZEwHduMUxU7gOX/8ImCd3z4XWJvpvKHAOL89\nAkj028OByQH1SgKHgC5+fxnQOaC8Gu4hWgT3QE0D6oSQtQGwGacgT8nh3o8HDvprSgNWAS0CyvsC\nqb48xdcZG1CeIUsRv78Wp/RPz6Hfi4HfAvZnA7399ihgKtAgl9+fZv7/c1XAMfHXVSvgWMfA70qm\nNtoBWwL2vwX+Gu3fhn3y/zELyggn16hqBVWtp6qD1LmbMlgf8izH5owNVT3oN0vj3DI7VTUlyDl1\ngAe8W3CniOzCvU1XD1I3gzaqWt7LOThIeW2gRqY2H8Epy8xUD7wuVT0A7Mgk39SMtnAKKxU4I6BO\n0Ld6VV0FDAZGAltEZLKIVMvmuv6lbkytDu6hfmam8h/8NZfBKf0WIvJ4iLauB64Ekr0rtkOIel8D\nJUSkvYjUwbkV/+vLnsIpyhnexTkkG9lR1WV+c1nA4arAaUBSwD38GKgEzloUkddEJFlEduPcpJUy\nNZ3T986IYUxBGeEku0Ho/A7CrwcqiEiZEGWP+wdvBa94Sqvq2/mUMaPN1ZnaLKuqVwep+zsB4xri\nohYrBpSvAy7P1FYpdWN0GYS8L6o6RVUvwCkdgH/mIDuqugGn2J4XkdNC1NmGc88FuyZU9WdV7QFU\nBj7EjWkFq5fuy27Gufo+VtX9vmy/qj6oqg1wbs77czOGloktOIv0zIB7WE6PBbc8hLs37VS1HBAs\nvD9awR9GGDAFZcQ0qroZF3DxbxEpJyKniMgFvvhV4HYROQeOvlFf4cdh8stcYK+IPCwixUWkqIg0\nF5F2Qeq+B1wlIuf7ca/HOF4BvgI8ISK1vXyVRaR7QHlIZSkijUWksw8IOIyzitJzcwGqOhPYCPwl\nWF8iUhG4FliSuVxEThWRm0WkjKqmAXtx7r9QvAX0xCmpyQF9XCkiDfzuXpybNlfyB1xHOm48bKyI\nZFhNNQPGA08HDgB7/DWNyEv7RuxjCsoIF9m9qQYry+nNNrD8FtwDbgXurfpecG/6uLGSF73751fc\neEt+ZMS3mQ5cBbTGjaVtxSnCLBacd0vdhXtIb8K59wJddmNxFsgMEdkDfI8LBsmNPKfhLKZtvu3K\nOFdjbq/raeChgICRDj4qLwVYiruP94Ro4xZgjXeb/T+c8gnesepcYD9ufO3TgKJGwEwR2Qt8B/yf\nqgaN5MvhOh4AkoG5Xp7PgIa+bAxQDnffZwPTc9GeEUeIauT+hyIyDvdj36KqLQOODwLuxD10pqvq\nUH/8EWCAP36vqs6ImHCGYRhGTHNKhNsfj4vmSsw4ICKdcL7vs1T1SIDp3hQXptoUN9A9U0QaaSQ1\nqGEYhhGzRNTFp6qzcSG9gdwB/FNVj/g62/3xa4ApqnpEVdfi5nGcg2EYhnFSEo0xqMbAhSLyow9h\nbeuP1+D4kNCNHD/p0TAMwziJiLSLL1Sf5VW1g5/R/i5QPy8NiIi5/QzDMOIYVc0xN2I0LKj1wAcA\nqvoTkOZDRDfiJklmUNMfC0q0ZziH+zNixIioy2DXdHJdj11T/HwK2zXlloJQUJkTdP4XP6HO5xsr\npqo7gGlAT5+Esh4ulHRuAchnGIZhxCARdfGJyGSgE1BRRNbhJtK9DowXkcW4WeIJ4OaUiMg7HEsH\nc6fmRdUahmEYhYqIKihVDTXBL+hKqqr6D+AfkZModunUqVO0RQg7he2aCtv1gF1TvFAYryk3RHSi\nbqQQETOuDMMw4hQRQaMdJCEi40Rki4gsClL2gLgF2yoEHHte3FLPC0WkdSRlMwzDMGKbSAdJjMct\ntHYcIlIT6IrLsZVx7HLc2jGNcEkuX46wbIZx0rJm7Rr63NOHzv060+eePqxZuybaIhlGFiI9BjXb\nrxOTmWdxqfKnBRy7Bp8SSVXniEhZETlDVbdEUkbDONlYs3YNXe/uyqpWq9ziIIfhx7t/5IsXv6Be\n3XrRFs8wjlLg86D8cgPrVXVxpiLLJGEYBcDwMcOdcirmDxSDVa1WMXzM8KjKZRiZKdBMEiJSAngU\n5947IUaOHHl0u1OnTidtlIth5IWlW5fyzdpvoG2mgmKwKWVTVGQyCj+zZs1i1qxZeT4v4lF83sX3\nkaq2FJEWwEzcImPCsWwR5+AWe/ta/WqoIrICuCiYi8+i+Awj9+w9tJe3l77NuAXjSN6dTPk55VnW\naNkxCwrgMFRbVI0vX/+SppWbRk1W4+QgJqL4MmTxH1R1iapWVdX6qloPt7hbG1XdihuPSgAQkQ7A\nbht/Moz8oap8t+47Bnw4gNrP1Wb6yukMu2AY6+5bx8dPfUyDpAZunV6Aw1A/qT79+/fnwgkXMviz\nwew6mHkRAsMoeCK9YOHRTBK4FTxHqOr4gPLVQDtV3en3XwS64Vbo7K+q80O0axaUYQRh6/6tJCYl\nMm7BONI1nYFtBpLQKoGqpaseV2/N2jUMHzOcTSmbqF6mOqPvH029uvXYtn8bw78eztQVUxl50Uhu\na3sbpxSJRk5pozCTWwvKJuoaRpxzJP0In//2OeMWjOOrNV9xbdNrGdhmIH+q9SdEcnwGBCVpcxKD\nPx/M9gPbee6y57i4/sVhlto4mTEFZRiFnFU7V/H6gteZmDSRGmVqcGubW+nZoidlTisTlvZVlakr\npvLgjAdpVbUVT3d9mgYVGoSlbePkxhSUYRRCDqYe5IPlHzBuwTgWb11Mn7P6MPDsgbSo0iJiff5x\n5A+e/eFZnvnhGW49+1aGXTCM0087PWL9GYWfmFBQIjIOuArYoqot/bGngKtxmcxX4caaUnzZI8AA\n4Ahwr6rOCNGuKSjjpGL+7/MZN38cU5ZOoX319gxsM5DuZ3bntFNOKzAZNu3dxKNfPsqMVTN4vMvj\n9G3dlyISjSXljHgnVhRUR2AfkBigoC4BvlLVdBH5J6Cq+oiINAMmAe1x4eczgUbBNJEpqNgmYwB+\nY8pGapSpcXQA3sgbuw7uYvLiyby24DV2HdxF/9b96d+mP7XL1s755Agyd+NcBn82mMNphxnbbSx/\nqv2nqMpTmCmsv6WYUFBekKPzoIKU9QCuV9VbRGQoTlk96cs+BUaq6pwg55mCilGOS6NTDDgMDZIa\nWBqdXJKu6cxaO4txC8Yx/dfpdGvYjYFtBnJx/YtjylpRVd5a8hZDZg6hY+2OPHnJk1FXnIWNwvxb\niqV5UNkxAPjEb1uqo0KApdHJHxtSNvD3//2dRi80YvBngzm3xrmsumcVU26YQtcGXWNKOYF7wNx8\n1s2suGsFjSs0ps0rbRg5ayQHUg9EW7RCQ6jf0gNPPkC6pkdVtoIiahMcRGQYkKqqb+XnfEt1FHuo\nKsu2LnOz3gIpBvM2zuOH9T/QrHIzyhYvGxX5Yo3DaYf5+NePGbdgHD+s/4E/N/8zU66fQrvq7fId\nHl7QlCpWilGdRzGgzQCGzBxCkxeb8OQlT3JTi5vi5hpije0HtjNlyRSmrZgGmb2nxeDjXz6mxOMl\nqFmmJnXK1qF22drUKVuHOuWObdcqW4vipxSPivzBiItURwHH+gG3AV1U9ZA/ltnF9xluYq+5+GKc\n9XvWMzFpIhMWTmDbJ9tIaZuSJY1OvWX1qHhFRZZvW075EuVpXrk5zSs3p0WVFjSv0pxmlZtRuljp\nqF1DQbJ823LGLRjHG4veoEmlJgxsM5Abmt1AyVNLRlu0E+bb5G8Z/Plgip9SnLHdxtKuertoixQX\nHDpyiOkrp5OYlMistbO4svGV/P7R73xd/essv6Xee3vz6jOvsj5lPev2rCN5d7L7u+fY3w0pGyhf\nvLxTWOXqULtM7eMUWO2ytalQokLUXiJiaQyqLk5BneX3uwHPABeq6o6AehlBEufiXHtfYEESMcvB\n1INMXTGVCQsn8PPvP9OzeU/6t+5PxcMVuXTQpSH95umaTvLuZJZuW8qSrUtYum0pS7cuZcX2FVQp\nVcUprMrNaV7FKbCmlZsWigf3vsP7eGfpO4xbMI7Vu1bTr1U/BrQZQKOKjaItWthJS09jYtJEhn01\njG4Nu/FElyeodnq1aIsVc6gqczbOITEpkXeWvsNZZ5xFQssErm92PWVOK3NCY1Dpms7mfZtDKrB1\ne9aRmpaarQKrUaZGxLKIxISCCpbqCJfNvBiQoZx+VNU7ff1HgIFAKhZmHnNk/KAmLJzAu8vepX31\n9vRv3Z9rmlxznDshVBqd7EhLT2P1rtVHFdbSbe7z645fqXF6jaMKK8PqOrPSmTHlwgiGqvLjhh8Z\nt2Ac7y9/nwvrXMjANgO5otEVJ0X6oJRDKTz+v8cZt2AcD57/IIM7DI75/1lBsHb3Wt5c9CaJSYmI\nCAktE+jTsg91ymVdOi8/v6XcknIoJVsFtmXfFqqWrppFcR39W65Onr0eGdcz6YVJ0VdQkcIUVMGy\nae8m3kh6gwlJE0hLT6N/6/7c0uoWapapGfG+j6Qf4bedvx1VWhlW1+pdq6ldtnYWV2Hjio0pVrRY\nzg1HkG37t/HGojcYt2AcqWmpR/PhnaxWxG87f+PBGQ+yeOtinu76ND2a9DjpxqdSDqXw/rL3mZg0\nkSVbl9CzeU8SWiVwTo1zYvZepKalsnHvxpAKbN2edZxW9LRsFViVUlWOBvgcZxE+gSkoI/8cOnKI\nab9MY0LSBH5Y/wPXN72e/m36c17N82LiB3U47TArd6zM4ipM3pNMvXL1srgKG1ZoyKlFT42YPGnp\nacxYNYNxC8bx5ZovuebMaxjYZiAda3eMifsVC8xcPZPBnw2mSqkqPNftOVqekWXmSaHiSPoRvlz9\nJYmLEpn+63Q61+tMQssErmh0RYFOsI4UqsqOgztCKrDk3cmkHEqhVtla1ClbhzX/XcPqpqud/2xk\nDCioEJkkygNvA3WAtcCfVXWPL3seuByXzbyfqi4M0a4pqAigqsz/fT7jF45nypIptKraiv6t+3Nd\n0+viZhzo0JFD/LLjF6e0AlyFG1I20KhCoyyuwvrl61O0SNFs28xusuSaXWt4fcHrTEiaQLXS1RjY\nZiA3tbjJIhVDcCT9CP/5+T+MnDWS65tez+guo6lUslK0xQori7csJjEpkUmLJ1GzTE36tupLzxY9\nC9115oaDqQePWluDHh7ELy1/cQUjY0NBBcsk8SSwQ1WfEpEhQHlVHSoilwN3q+qVInIuMFZVO4Ro\n1xRUGNm6fytvLnqTCQsnsO/wPvq17kffVn2D+sTjlQOpB1ixfUUWV+GWfVs4s9KZWVyFdcvVpYgU\nCTpQXX9hfe4ZdA8fbf2IpC1J9D6rNwPbDOSsM86K9mXGDTsP7mTUrFFMXjKZYRcM4672d0XUwo00\nW/ZtYfLiySQuSmT7ge3c0vIWbml5iy3+GECfe/ow6fRJsWNBQdYw88CVckWkKm4V3aYi8jLHr6i7\nHOhkK+pGhtS0VKavnM74heP5Zu039GjSg/6t+3NBnQtiblJoJNl3eB/Lty3P4irceXAnTSo1Yeen\nO1nTbE2WUN+qi6oy9p9juebMawqFuyZaLNu2jPs+v491e9Yx5tIxXN7o8miLlGsOph5k2i/TSFyU\nyHfrvqNHkx4ktEqgU91OJ9VvKLfE5BhUEAW1U1UrBJTvVNUKIvIR8A9V/d4fnwk8HGzRQlNQ+WfR\nlkWMXzCeyUsmc2bFM+nfuj83NLvBslNnIuVQCsu2LaPfvf2OuSUC6LymM19N+CoKkhU+VJXpK6dz\n/+f307BCQ8ZcNoYmlZpEW6ygqCqz180mMSmR95e/T7vq7UholcC1Ta6lVLFS0RYv5slrFF8sxLrm\nS9NYJoncs+PADiYvnsyEpAls27+Nvq368t2A72hYoWG0RYtZypxWhg41O9CuRjt+OfxLFguqepnq\nUZOtsCEiXNX4Ki5tcCkvzn2RC8ZfQJ+z+jCi0wjKFS8XbfEAF4n4RtIbvLHoDUqcWoK+rfqy+I7F\n1Chj2dhyQ2Amibw8d6JhQR113eXg4jvqCgzSpllQOZCxyur4heOZuXomVzW+in6t+9GlXhdzP+SB\nwpywM1bZun8rw78azoe/fMjITiO57ezbcgxkiQS7Du7inaXvkLgokd92/kavFr1IaJVAm6ptLDLz\nBImJibpekLocn0niSWCnqj7p0xuV80ESVwB3+SCJDsBzFiSRd5ZtW8aEhRN4c9Gb1C1Xl36t+9Gz\neU+LKjsBIjlZ0gjNws0LGfzZYHb9sYvnLnuOzvU6R7zP1LRUPvvtMxIXJTJj1Qwua3AZCa0SuKzB\nZXEdxBFrhFVBiUgp4KBfw6kx0AT4VFVTczgvWCaJ/wLvArWAZFyY+W5f/0WgGy7MvH+w8SdfzxRU\nALv/2M2UJVMYv3A8G1I2kNAygb6t+8asH98wcouq8v7y93noi4c4u9rZ/Kvrv6hfvn7Y+1iweQGJ\nSYm8teQtGlVoREKrBG5sdiPlS5QPa1+GI9wK6mfgAqA88B3wE3BYVXufqKD5wRSUmxj65ZovGb9w\nPJ+u/JTLGl5Gv1b96Nqg60mRRsc4uTiYepAxP4xhzI9j+Evbv/BIx0dOOLBnY8pGJi2eRGJSIgdS\nD5DQyqUcsrHZyBNuBTVfVc8WkUFACT+HaaGqtg6HsHnlZFZQv+74lYkLJ5K4KJGqpavSv3V/bmpx\nExVKVMj5ZMOIczambOSRLx/hyzVf8niXx0lolZCnMdX9h/czdcVUEpMSmbdpHtc3vZ6+rfvyp1p/\nsnGlAiTcCmoBcCfwLDBQVZeKyOKMcaWC5mRTUCmHUnh36buMXzie33b+Rp+WfejXuh8tqrSItmiG\nERXmbJjDvZ/dS5qmMbbbWM6vdX7IjB8ZqxQnJiXy4S8fcn6t80lomUD3M7tT4tQS0b6Uk5JwK6iL\ngAeA73xwQ31gsKrecwIC3ofLXJ4OLAb6A9WBKUAF4GfgFlU9EuTcQqOgcvpRTVg4gWm/TKNLvS70\nb92fbg272WCtYeCWlJi8eDJDZw6lbcm2JE1LIrlN8tFoy1rza3FVn6v4eOvHVCxZkYSWCfQ6qxdV\nS1eNtugnPTETxRe0U5HqwGygiaoeFpG3cUu/XwG8p6rvishLwEJVfSXI+YVCQQULYa49vzY9Enow\nbes0yp5Wlv6t+3PzWTdTuVTlaItrGDHJvsP7OO+W81jScEmW+WpNf23KlBenFPrEtPFGbhVUtqPp\nPuE75EEAAA+bSURBVLtDSE2gqt3zIVsGRYFSIpIOlAA2AZ2BXr58IjASyKKgCgvDxww/ppwAisG6\ns9fx+fufM/XFqbSuGpUhPsOIK0oXK02lEpWOV04AxaBqqaqmnOKYnMK9no5Ep6q6SUSeAdYBB4AZ\nwHxgt6qm+2obcC6/QsvGlI0uAD+QYlC9dHVTToaRB2qUqQGHsYwfhYxsFZSqfhOJTkWkHHANbsmN\nPbh5Ud3y0ka8pzpKTUtl28Ft9qMyjDAw+v7R/Hj3j1kyfox+cXS0RTM4PtVRXsh2DEpEGuGWaN8F\njAFexc2HWoWL5puXH2FF5AbgMlW9ze/fApwH3ABU9ROCOwAjVDVLeuN4H4P6dcev9P6gN6UPlGbt\n52tZ22atpdExjBPEMn7ED2EJkhCR2UAiUAa4DxgMfIRTUn9X1XPzKdw5wDigPXAIGI+b/Hsh8IGq\nvu2DJJJU9eUg58elglJVXp3/KsO+GsaoTqO4o90drE1eaz8qwzBOKsKloI5OxhWR31S1YbCyfAo4\nArgJSAUWALcCNXFh5uX9sT7B0inFo4Laun8rt067lY17N/LmtW/aQmaGYZy0hCWKDzdHKYOUbMry\njKqOAkZlOrwGyJdVFst8svITbp12K31b9eW9P79HsaKZw40MwzCMzORkQR0AfgMEaOC38fv1VTUq\nK3TFiwV1IPUAD814iI9Xfkxij0QuqntRtEUyDMOIOuGyoCLmhxKRssBrQAucNTYA+BV4GxfdtxaX\n6XxPpGSIJPN/n0/vD3rTtlpbkm5PipmF1wzDMOKFfGWSEJEiQC9VnZTvjkUmAN+o6ngROQUohYsY\n3OGT0Q4Byqvq0CDnxqwFlZaextPfP80zPzzD2G5j6XVWr5xPMgzDOIkIV5BEGeAuoAYwDfgCuBuX\nly9JVa/Jp3BlgAWq2iDT8aOr6PrVdmepapZFjWJVQa3bs46EqQnA/2/v/oOlKu87jr8/BKGiQqNG\nwF4JioIWp95cGZVAE9HiDySoOLY4oChWa7QDNdYJwTamZWhGZxJHa01EQIGAaCCoaSMBA0XjiAIX\nDCCpGX9QCIimioAaEfn2j/Nc54LLvRd27z27y+c1s3P37D1n93tY7n73ec7zfB+YcfkMenTpkXNE\nZmblp6UJqrk69TOBPmTFXP8WWEI2V+myg01OyYnAHyQ9LKle0mRJnYCuDUu8R8RbwHFFvEabmr1m\nNv0m92PIKUP41TW/cnIyMytSc9egTmq0VPsUYAvQIyL+WILXrSNb4n2FpHuA8Xy+7t9+m0nlUkli\n2x+3ccsvbqF+Sz0LRi2grntdLnGYmZWr1qokUR8RdfvbPliSugIvRMRJaXsgWYLqBZzbqItvSUR8\nbqBGuXTxLX1zKaOfGM3Q3kO5e/DddDqsU94hmZmVvVKN4jtDUsP8JwGHp20BERGdDya4lIA2Suod\nEa8C5wPr0u1a4C5gNPDkwTx/a9v16S6+u+S7zHh5BlOGTWHIKUPyDsnMrOrksh4UgKQzyIaZHwa8\nTrZg4ReAx4ETgA1kw8y3FTg2txbU+nfWM/JnI6npXMOUYVM47oiKuUxmZlYWynrBwmLlkaAiggeW\nP8D3ln6PSedN4oa6G5Ca/fc1M7N9lKqLz4CtO7cy5qkxvPPBOzw/5nl6H9M775DMzKpec8PMD3k/\n/5+fU/tgLXXd6pyczMzaUK4tqFSRYgWwKSKGSepJVs38aGAlcHVE7M4jtg92fcBtC29j4WsLmXvl\nXAb0GJBHGGZmh6y8W1DjgFcabd8F/CAiegPbgOvzCGr575dTN7mOj3Z/xOqbVjs5mZnlILcEJakG\nGEI2kq/BecC8dH86cHlbxvTpnk+Z9Owkhj46lImDJjL9sul07nhQI+nNzKxIeXbx3QPcDnQBkHQM\n8F5ENKwztQk4vq2CeeO9N7h6/tV0bN+RlTeupKZzTVu9tJmZFZBLgpJ0CbA1IlZLOrfxr1r6HKUq\ndRQRzPzNTG5beBvjB4zn1v630k5593yamVWPVil11Fok/RswCtgNHA4cBTwBXAB0i4g9ks4B7oyI\niwscX5J5UO9+9C7f/K9vsu7tdcwaPoszup1R9HOamVnTSlXNvFVExISI6JFq8Y0AFkfEKLJq6Vem\n3Vq11NHiNxZT++Nauh/ZneU3LHdyMjMrM+U2UXc8MEfSRGAVMLXUL/Dx7o+5Y/EdzFk7h2mXTuOC\nXheU+iXMzKwEDqlSR2vfXsvIn42k1xd7Mfkbkzm207GtEJ2ZmTWlrLv42tqe2MO9y+5l0PRBjDt7\nHPP+ep6Tk5lZmctrFF8NMAPoCuwBHoqI+yR9EXgM+DLwJlk18/eLea3NOzZz3ZPXsf3j7Sy7fhm9\nju7V/EFmZpa7vFpQu4FvRURfoD9wi6RTya5BPRMRfYDFwHeKeZH56+dT92AdX635Ks9d95yTk5lZ\nBSmLa1CSngDuT7evN1pR978j4tQC+zd5DWrnrp2Me3ocSzcsZeblM+l/Qv9Wi93MzA5MxVyDSgVi\na4FlQNeI2AoQEW8BB7wa4LJNy6j9cS0Aq/5ulZOTmVmFyrua+ZHAXGBcROyUtG+zaL/NpH0rSQz8\n2kAmPTuJB1Y8wI8u+RHDTxveKjGbmdmBqahKEgCS2gP/CTwdEfemx9YD5zbq4lsSEacVOHavLr7X\n3n2NUfNHcVSHo3jkskc4/qg2K+FnZmYHqBK6+KYBrzQkp+Qp4Np0v9lKEhHBtFXTOGfqOYzoO4IF\noxY4OZmZVYm8avENAJ4F1pB14wUwAXgJeBw4AdhANsx8W4Hj44qbr2DnaTvZ0n4Ls4bP4vTjTm+7\nEzAzs4PW0hZUWYziO1CSggnQ5YUuvDj5Rfqc3CfvkMzMrIUqoYuvOB3g/f7vM/G+iXlHYmZmraBy\nExRAB9i8fXPeUZiZWSsoywQl6SJJv5X0qqRv73fHXXB85+oYFHEwQzDLXbWdU7WdD/icKkU1nlNL\nlF2CktSOrKLEhUBf4KpUBmlvu6DXy72Y+K3q6OKrxv+A1XZO1XY+4HOqFNV4Ti1RdgkKOAv4XURs\niIhPgDnApfvuNHLHSBbdv4gTe57Y5gGamVnrK7cFCwH+DNjYaHsTWdLay0/u+0mbBWRmZm2v7IaZ\nS7oCuDAibkzbo4CzImJso33KK2gzMzsgLRlmXo4tqN8DPRpt16THPtOSEzMzs8pWjteglgMnS/qy\npA7ACLISSGZmdggpuxZURHwq6e+BhWQJdGpErM85LDMza2Nldw3KzMwMyrOLr0ktnsRbISRNlbRV\n0m/yjqUUJNVIWixpnaQ1ksY2f1R5k9RR0ouSVqVzujPvmEpBUjtJ9ZKqpgtd0puSXk7v1Ut5x1Ms\nSV0k/VTS+vQ3dXbeMRVDUu/03tSnn+839RlRUS2oNIn3VeB8YDPZ9aoREfHbXAMrgqSBwE5gRkT8\nRd7xFCut49UtIlanBSlXApdW8nsEIKlTRHwo6QvA88DYiKjoD0BJtwJnAp0jYlje8ZSCpNeBMyPi\nvbxjKQVJjwBLI+LhtIZep4jYnnNYJZE+zzcBZ0fExkL7VFoLqkWTeCtJRPwaqIo/JoCIeCsiVqf7\nO4H1ZHPbKlpEfJjudiS7dls53+wKkFQDDAGm5B1LiYnK+1wrSFJn4C8j4mGAiNhdLckp+Svgtf0l\nJ6i8N7LQJN6K//CrVpJ6ArXAi/lGUrzUHbYKeAtYFBHL846pSPcAt1PhibaAAH4pabmkG/IOpkgn\nAn+Q9HDqEpss6fC8gyqhvwEebWqHSktQViFS995cYFxqSVW0iNgTEV8hm5d3tqQ/zzumgyXpEmBr\naukq3arFgIjoR9Y6vCV1oVeq9kAd8B8RUQd8CIzPN6TSkHQYMAz4aVP7VVqCanYSr+Uv9ZXPBWZG\nxJN5x1NKqYtlCXBR3rEUYQAwLF2veRQYJGlGzjGVRERsST/fAeZToExaBdkEbIyIFWl7LlnCqgYX\nAyvT+7RflZagqnUSb7V9i50GvBIR9+YdSClIOlZSl3T/cGAwULGDPiJiQkT0iIiTyP6GFkfENXnH\nVSxJnVLLHUlHABcAa/ON6uBFxFZgo6Te6aHzgVdyDKmUrqKZ7j0ow4m6TanGSbySZgPnAsdI+l/g\nzoaLopVI0gBgJLAmXbMJYEJELMg3sqJ0B6anUUftgMci4hc5x2Sf1xWYn2p1tgdmRcTCnGMq1lhg\nVuoSex24Lud4iiapE9kAiRub3beShpmbmdmho9K6+MzM7BDhBGVmZmXJCcrMzMqSE5SZmZUlJygz\nsyoi6e5UXHa1pHmpZFKh/QoW3pbUU9Ky9PijaV4jkkZLejtVtaiXNKaZOIousuwEZWZWoSR9XdK+\n01IWAn0johb4HfCdAse1A+4HLgT6AldJOjX9+i7gBxHRG9gGXN/o0DkRUZdu05qKLSI+BgalCiy1\nwMWSDmjitBOUWRuS9JykixptXynJc6qsGHvNFYqIZyJiT9pcRlZxZ19NFd4+D5iX7k8HLmt0XMGC\nApL+UdJLqdX2WUup2CLLTlBmbesm4IeSOqSqB5OAm4t5wrQEiB26mqpCMwZ4usDjBQtvSzoGeK9R\ngtu3IPfwlIQeTxXxkTQYOCUizgK+AvRrqIFYbJFlJyizNhQR68jKc40H/hmYHhFvSrom9dfXS7q/\nYX9JD6Zvpmsk/VOjxzdK+r6klez9DdcOAekaUT3ZcinfaHRdaHCjfe4APomI2Qf69Pt5/CmgZ+o6\nfIasdQVZSanBKZ56oA9wChRfZLmiSh2ZVYl/JftD/pjs22Zf4HKgf0TsSUlpRETMAb4dEdtSK2mJ\npLmNFn/cGhFn5nMKlqeIOAeya1DA6IjYa8CCpGvJKrqft5+nKFh4OyL+T9KfSmqXWlGfFeTeZxHI\nKWTXqiBLaN+PiIeaiHe7pIYiyy2uJ+gWlFkbS/3yj5FVe/+ErC5ZP2BF6g75GtAr7T4ytZLqgVOB\nxt9AH2u7qK1SpGuctwPD0kCFQgoV3m5YeWAxcGW6P7rhcWWrZTe4lGwxUoBfAmNSgV4kHS/pS6Uo\nsuwWlFk+9qQbZN9Ap0XEXsNwJZ1MViy0X0TskDQT+JNGu3zQJpFapfl3oAOwSBLAsoi4WVJ34KGI\nGLqfwtsNyWM8MEfSRGAVMDU9PlbSMOAT4F3gWoCIWJRGAL6QXm8HMAo4kiKLLLtYrFkO0kinHRHx\nQ0mnky3cNjB1sRwNHAF8CXiQbMRVN+Bl4B8iYrakjWRDiatpCXCzvbgFZZaziFgr6V+AZ9K3zV3A\nTRGxUtJ6sq6UDcCvGx+WQ6hmbcotKDMzK0seJGFmZmXJCcrMzMqSE5SZmZUlJygzMytLTlBmZlaW\nnKDMzKwsOUGZmVlZ+n9sXSZtMMLzqQAAAABJRU5ErkJggg==\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a444080>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.figure(1)\n", "\n", "plt.subplot(211)\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals,yvals,'ro-')\n", "\n", "plt.subplot(212)\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Prince Fielder's RBIs vs Year\")\n", "plt.plot(xvals2,yvals2,'go-')\n", "\n", "plt.tight_layout()\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Modify your sine and cosine plot so that each line is plotted in a separate subplot"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Numpy Demo\n", "We'll go through some examples here.  There are also plenty of other guides online:\n", "* [Numpy quickstart tutorial](https://docs.scipy.org/doc/numpy/user/quickstart.html)\n", "* [Numpy for MATLAB users](https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html) -- great reference if you already know MATLAB\n", "* [100 Numpy Exercises](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md)\n", "* [101 Numpy Exercises for Data Analysis](https://www.machinelearningplus.com/python/101-numpy-exercises-python/)\n", "* [Numpy Exercises, Practice, Solution](https://www.w3resource.com/python-exercises/numpy/index.php)\n", "\n", "To start working with any package, need to import it."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["import numpy as np"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Motivation\n", "Arrays are faster and more efficient than lists when working with numerical data."]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Matrix Multiplication - Pure Python"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["import random\n", "import time\n", "\n", "start = time.time()\n", "\n", "n = 100\n", "\n", "A = []\n", "for i in range(n):\n", "    row = []\n", "    for j in range(n):\n", "        row.append(random.random())\n", "    A.append(row)\n", "    \n", "B = []\n", "for i in range(n):\n", "    row = []\n", "    for j in range(n):\n", "        row.append(random.random())\n", "    B.append(row)\n", "    \n", "C = []\n", "for i in range(n):\n", "    row = []\n", "    for j in range(n):\n", "        sum = 0\n", "        for k in range(n):\n", "            sum += A[i][k] * B[k][j]\n", "        row.append(sum)\n", "    C.append(row)\n", "    \n", "stop = time.time()\n", "print(stop - start)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Matrix Multiplication - Numpy"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["start = time.time()\n", "\n", "n = 100\n", "\n", "A = np.random.random((n, n))\n", "B = np.random.random((n, n))\n", "C = A @ B\n", "\n", "stop = time.time()\n", "print(stop - start)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Creating Arrays\n", "Numerous ways of creating arrays available."]}, {"cell_type": "markdown", "metadata": {}, "source": ["* Creating arrays from a list"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["vals_list = [1, 3, 2, 8]\n", "vals_array = np.array(vals_list)\n", "\n", "print(\"vals_list: \", vals_list)\n", "print(\"vals_array: \", vals_array)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# don't need to create separate variable\n", "vals_array = np.array([1,3,2,8])\n", "print(vals_array)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["You can also change it back to a list:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_array.tolist())"]}, {"cell_type": "markdown", "metadata": {}, "source": ["* Creating arrays using built-in functions\n", "    * [np.arange()](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.arange.html)\n", "    * [np.linspace()](http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.linspace.html)\n", "    * How do we know how to call them?\n", "        * See documentation\n", "        * Jupyter help"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Jupyter help - Two different ways"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["help(np.arange)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["np.arange?"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## np.arange"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# create array with integers 0,1,...,9\n", "start = 0\n", "end = 10 # needs to be 1 more than 9!\n", "print(np.arange(start,end))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# can omit start if you want arange to start at 0\n", "end = 12\n", "print(np.arange(end))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# can take bigger step sizes than 1\n", "# create array with integers 5, 9, 13, 17\n", "start = 5\n", "end = 21  # this is 17 + 4\n", "step = 4\n", "print(np.arange(start,end,step))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# don't need to go all the way to 21, 18 would be fine\n", "start = 5\n", "end = 18\n", "step = 4\n", "print(np.arange(start,end,step))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## np.linspace"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["start = 0\n", "end = 1\n", "num_points = 11\n", "print(np.linspace(start,end,num_points))\n", "print()\n", "print(np.linspace(0,28,12))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Initialize arrays with different values"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(np.zeros(5))\n", "print()\n", "print(np.ones(7))\n", "print()\n", "print(np.empty(3))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Higher dimensional arrays"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Make a $5\\times 5$ matrix of all zeros:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["dim = (5,5) # must be a tuple!\n", "print(np.zeros(dim))\n", "print()\n", "print(np.zeros((5,5)))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Make a 3D array of shape $4\\times 3 \\times 2$ with all ones:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["dim = (4,3,2)\n", "print(np.zeros(dim))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Also works with `np.empty`..."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Data Types\n", "As we saw, Python is dynamically typed.  Types are changed automatically as needed.  And, lists can hold anything.  A single list could hold strings and integers.\n", "\n", "What about arrays?\n", "Numpy arrays are statically typed.\n", "\n", "So, what are the data types of the arrays we created above?  What are the available datatypes?  How do we specify what datatype we want? "]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["vals_list = [1,3,2,8]\n", "vals_array = np.array(vals_list)\n", "vals_arrayf = np.array(vals_list, dtype=np.float64)\n", "\n", "print(\"vals_array: \", vals_array)\n", "print(\"vals_arrayf: \", vals_arrayf)\n", "\n", "print(type(vals_list))\n", "print(type(vals_array))\n", "print(type(vals_arrayf))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["The `dtype` argument is valid for most array-creation functions, including\n", "`numpy.zeros`, `np.ones`, and `np.arange`."]}, {"cell_type": "markdown", "metadata": {}, "source": ["In Python3, the `dtype` of an array that results from mathematical operations will\n", "automatically adjust to whatever is sensible."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print('integers: ', vals_array)\n", "print('more integers: ', vals_array * 3)\n", "print('floats: ', vals_array / 3)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["You can also copy an array and change the `dtype`."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["arr = np.arange(10.0) # not an integer!\n", "x = arr.astype(int)\n", "print('arr: ', arr)\n", "print('x: ', x)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Accessing Array Elements\n", "Now that we actually have arrays, how do we get things from them?\n", "Indexed from 0, bracket notation for accessing"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["vals_arrayf = np.array([1, 3, 2, 8, 24, 0, -1, 12])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[0]) # this selects 0th element\n", "print(vals_arrayf[3])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Negative accessing is also allowed."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf)\n", "\n", "print(vals_arrayf[-1])\n", "print(vals_arrayf[-3])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What if I want a section of an array?  **Array slicing**."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["start_index = 1\n", "end_index = 4  # will stop BEFORE this index - think about np.arange\n", "print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[start_index:end_index])\n", "print(vals_arrayf[1:2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[1:1]) # this will get you all elements strictly between 1 and 1... there aren't any!"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["start = 2\n", "end = 37 # going too far is fine\n", "print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[start:end])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["If you start at the beginning, no need to put in 0:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf[0:3])\n", "print(vals_arrayf[:3])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Similar if you want to end at the last element:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf[1:8])\n", "print(vals_arrayf[1:])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["You can use negative indices too!"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[2:-1])\n", "print()\n", "print(vals_arrayf[:-2])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["In addition to a start and end, you can also choose a step for the slice."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["start = 0\n", "end = 6\n", "step = 2\n", "print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[start:end:step])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["These next two calls do the same thing:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf[0:8:2])\n", "print(vals_arrayf[::2])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What are these next two examples doing?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(vals_arrayf)\n", "print()\n", "print(vals_arrayf[1::2])\n", "print(vals_arrayf[::-1])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Copies vs. Views (Accidentally changing your array)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["You need to be careful with `numpy` arrays if you are\n", "* trying to copy part of an array, or\n", "* passing an array to a function\n", "\n", "You might be in for a nasty surprise if you change an element."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["simple = np.arange(5)\n", "small = simple[:2]\n", "print(simple)\n", "print('')\n", "print(small)\n", "print('')\n", "\n", "small[0] = 7\n", "print(small)\n", "print('')\n", "print(simple)  # shouldn't have changed, right?"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This happens because `small` is something called a \"view\" of\n", "`simple`, rather than a copy. This helps `numpy` save memory and\n", "speed up your program, but it can lead to tricky bugs if it\n", "is not your intent. In general, it can be difficult to tell\n", "whether something will be a view or a copy.\n", "\n", "Functions also do not make copies of their input arrays."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def foo(x):  # notice that x is not returned\n", "    x[0] = 100\n", "\n", "\n", "foo(simple)\n", "print(simple)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["If you think you are accidentally changing your array elsewhere in your code,\n", "you can copy it to be on the safe side. This slow your program down\n", "and use more memory, but it can help debugging and save a lot of headaches."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["simple = np.arange(5)\n", "print('before:')\n", "print(simple)\n", "\n", "my_copy = simple[:2].copy()\n", "my_copy[1] = 10\n", "\n", "foo(simple.copy())\n", "\n", "print('after:')\n", "print(simple)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Multi-dimensional Arrays"]}, {"cell_type": "markdown", "metadata": {}, "source": ["*Note:* There is a `numpy.matrix` class, but you should **avoid** using it.\n", "Use two-dimensional arrays instead."]}, {"cell_type": "markdown", "metadata": {}, "source": ["How do we create multi-dimensional arrays?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Creating from multi-dimensional lists\n", "mat = np.array([[1,4,8],[3,2,9],[0,5,7]], float)\n", "print(mat)\n", "print('')"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Exercise: Define the following matrix\n", "\\begin{bmatrix}\n", "4 & 2.2 & 9 & 0 & 0.5\\\\\n", "0 & 0   & -1 & 1 & 1\\\\\n", "3 & -1 & 2 & 0 & 100\n", "\\end{bmatrix}"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Creating special matrices\n", "print(np.zeros((2,3), dtype=float)) # you already saw this...but this time we're specifying the type\n", "print('')\n", "print(np.zeros_like(mat))\n", "print('')\n", "# np.zeros_like creates a matrixsame shape, dimension, datatype as existing matrix\n", "print(np.identity(3, dtype=float))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["How do we access multi-dimensional arrays?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat)\n", "print(mat[1,2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat[0,0], mat[1,1], mat[2,2])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What is happening here?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat)\n", "print()\n", "print(mat[2])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Can do the same thing with array slicing:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat[2,:])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What's happening here?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat[:,1])\n", "print()\n", "# force it to be a column vector...\n", "print(mat[:,1:2])\n", "print()\n", "print(mat[:,[1]])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What about this?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat[:,:2])"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Exercise: Create a 2D array with 1 on the border and 0 inside\n", "For example,\n", "\n", "\n", "$\\begin{bmatrix} 1 & 1 & 1 & 1 & 1\\\\\n", "1 & 0 & 0 & 0 & 1\\\\\n", "1 & 0 & 0 & 0 & 1\\\\\n", "1 & 0 & 0 & 0 & 1\\\\\n", "1 & 1 & 1 & 1 & 1\n", "\\end{bmatrix}$"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# you can do this with np.ones or np.zeros and slicing\n", "N = 8  # make a matrix of size NxN"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What if we want an array of a different shape?\n", "This can be a convenient way of initializing matrices."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["arr = np.arange(8)\n", "two_four = arr.reshape(2, 4)\n", "four_two = arr.reshape(4, 2)\n", "eight_none = four_two.flatten()\n", "print('array:')\n", "print(arr.shape)\n", "print('')\n", "print('2 x 4:')\n", "print(two_four)\n", "print('')\n", "print('4 x 2:')\n", "print(four_two)\n", "print('')\n", "print('back to array:')\n", "print(eight_none)\n", "print(eight_none.shape)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Array functions\n", "We'll go through some array functions here.  There are plenty more available.  Best way to find the function you want is to search on Google for what you want and find the documentation for it (there is probably a function that does what you want to do)."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["new_mat = mat[:,:2]\n", "print(new_mat)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Shape of an array"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(new_mat.shape) # not actually a function, but an \"attribute\""]}, {"cell_type": "markdown", "metadata": {}, "source": ["What about sorting an array?\n", "Two different methods, \n", "[np.sort()](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.sort.html) or \n", "[myarray.sort()](http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.ndarray.sort.html).\n", "One is a numpy function (called as np.sort()) and returns a copy of the array in sorted order.\n", "The other one is a function of the array and sorts the array in place.\n", "\n", "**Important point:**\n", "* Some functions operate in place, others return copies.\n", "* How do you know which you are using?  Look at the documentation."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Sort array\n", "vals_arrayf = np.array([1, 3, 2, 8, 24, 0, -1, 12])\n", "\n", "print(np.sort(vals_arrayf)) # returns a copy\n", "print(vals_arrayf)\n", "vals_arrayf.sort() # inplace\n", "print(vals_arrayf)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Checking if items are in an array\n", "print(9 in mat)\n", "print(9 in vals_arrayf)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Lots of elementwise operations happen automatically with arrays. These include:\n", "* addition\n", "* subtraction\n", "* multiplication\n", "* division\n", "* comparisons"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["mat_2 = np.array([[1,3],[2,5]], float)\n", "id_2 = np.identity(2, float)\n", "\n", "print(mat_2)\n", "print('')\n", "print(id_2)\n", "print('')\n", "print('sum:')\n", "print(mat_2 + id_2)\n", "print('')\n", "print('difference:')\n", "print(mat_2 - id_2)\n", "print('')\n", "print('product:')\n", "print(mat_2 * id_2)  # NOT matrix multiplication\n", "print('')\n", "print('quotient:')\n", "print(id_2 / mat_2)\n", "print('power:')\n", "print(mat_2**3)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Can compare values too!"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat_2 == id_2)\n", "print(' ')\n", "print(mat_2 > id_2)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Other Functions\n", "print(np.exp(id_2))\n", "print()\n", "print(np.abs(vals_arrayf))\n", "print()\n", "print(np.log2(mat_2))\n", "print()\n", "print(np.reciprocal(mat_2))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Trig Functions\n", "print(np.sin(mat_2))\n", "print(np.tan(id_2))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Rounding\n", "print(np.round(np.sin(mat_2), 2))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Can also perform operations between arrays and numbers:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat_2)\n", "print()\n", "print(mat_2 - 3) # subtract 3 from every element\n", "print()\n", "print(mat_2*8) # multiply every element by 8"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Exercise: \n", "Given a numpy array $x$, compute an array that applies the following function to $x$:\n", "\n", "$\\begin{equation}\n", "e^{-|x|^3} + \\sin(5x) + \\cos(x + 3)\n", "\\end{equation}$"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["x = np.linspace(-1,1,30)\n", "..."]}, {"cell_type": "markdown", "metadata": {}, "source": ["Recall comparing arrays:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(mat_2)\n", "print(id_2)\n", "print()\n", "print(mat_2 == id_2)\n", "print(' ')\n", "print(mat_2 > id_2)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Can compare arrays and actually use the resulting boolean array to manipulate the entries of another array"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["z = mat_2 > id_2\n", "print(z)\n", "print()\n", "print(mat_2)\n", "print()\n", "print(mat_2 * z)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This might help you understand what happened:"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(z*1)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Exercise:  \n", "The Rectified Linear Unit (ReLU) is a function that is frequently used in machine learning, especially in the context of deep neural networks.  It is defined as:\n", "\n", "$\\begin{equation}\n", "\\text{ReLU}(x) = \\max\\{0,x\\}\n", "\\end{equation}$\n", "\n", "That is if $x < 0$ it returns zero, and if $x\\geq 0$ it returns $x$.\n", "\n", "Given a 1D array $x$, compute its transformation under the ReLU function using comparison.  *Hint*: just like how you can add a single number to every element of an array, you can also compare a single number to every element."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["x = np.linspace(-1,1,30)\n", "..."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Broadcasting (Element-wise operations on arrays of different shapes)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Not necessary for this course, but check it out if you're interested.  Every broadcast operation can be done using loops, but broadcasting is faster.  You will get by just fine in CS 357 using loops"]}, {"cell_type": "markdown", "metadata": {}, "source": ["See [A Gentle Introuction to Broadcasting with Numpy Arrays](https://machinelearningmastery.com/broadcasting-with-numpy-arrays/) for a detailed explanation"]}, {"cell_type": "markdown", "metadata": {}, "source": ["The simplest case of broadcasting is adding a single number to every element of an array.  Here is the mathematically correct way of adding a number to every element of an array"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["bmat = np.arange(12).reshape(4, 3)\n", "print(bmat)\n", "print()\n", "z = 3*np.ones_like(bmat)  # what is this doing?\n", "print(z)\n", "print()\n", "print(bmat + z)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["But we saw can just add a number directly...Numpy is **broadcasting** the value"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(bmat)\n", "print()\n", "z = 3\n", "print(z)\n", "print()\n", "print(bmat + z)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["**Advice**: Get the hang of Python and Numpy, and worry about broadcasting later.  Just know that you can add a single number to an array, and there is something going on behind the scenes"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Reduction Operations"]}, {"cell_type": "markdown", "metadata": {}, "source": ["There are other operations that do not return an array of the same shape as the input.\n", "For example, you can find out the minimum or maximum value in the entire array,\n", "or the sum of all entries."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["bmat = np.array([6, 7, -12, 0, 3, 4, 21, 1, 1, 0, 2, 5]).reshape(4,3)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(bmat)\n", "print()\n", "print(bmat.min())\n", "print(bmat.max())\n", "print(bmat.sum())"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What if I want the smallest number in every row?\n", "All of these reduction operations take an optional `axis` argument that allows\n", "us to target a particular dimension of the array."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print('row minimum:')\n", "print(bmat.min(axis=1))\n", "print('column maximum:')\n", "print(bmat.max(axis=0))\n", "print('row sum:')\n", "print(bmat.sum(axis = 1))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Notice that when we pass an `axis` argument, we lose that dimension of our\n", "array, but the shape is otherwise unchanged. So, a (4, 3) array becomes\n", "a (3,) array if we pass `axis=0`, and it becomes a (4,) array if we\n", "pass `axis=1`."]}, {"cell_type": "markdown", "metadata": {}, "source": ["Some more reductions..."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(bmat)\n", "print()\n", "print('mean:')\n", "print(bmat.mean())\n", "print()\n", "print('column mean:')\n", "print(bmat.mean(axis = 0))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(bmat)\n", "print()\n", "print('product:')\n", "print(bmat.prod())\n", "print('column product:')\n", "print(bmat.prod(axis = 0))"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Treating Arrays as Matrices and Vectors"]}, {"cell_type": "markdown", "metadata": {}, "source": ["If `*` is elementwise multiplication, how do we do matrix multiplication?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Matrix Multiplication and Dot Product\n", "print(np.dot(mat_2, id_2))\n", "print('')\n", "print(mat_2 @ id_2)\n", "print('')\n", "print(np.dot(vals_arrayf, np.array([0,2,6,1, 1, 2, 3, 4])))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Matrix transpose\n", "print(mat_2)\n", "print()\n", "print(np.transpose(mat_2))\n", "print()\n", "print(mat_2.T)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Numpy constants\n", "A [list](https://docs.scipy.org/doc/numpy/reference/constants.html) of Numpy constants"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["print(np.pi) # the famous irrational number\n", "print(np.e)  # euler's number = exp(1)\n", "print(np.inf) # infinity\n", "print(np.NINF) # negative infinity\n", "print(np.nan)  # 'not a number'"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Random Numbers"]}, {"cell_type": "markdown", "metadata": {}, "source": ["You will often be asked to generate random numbers.\n", "`numpy` can generate numbers from a variety of distributions,\n", "and it can generate lots of them at once and put them in a convenient shape.\n", "\n", "The [np.random](https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.random.html) documentation gives a helpful overview.\n", "\n", "Some of the more common functions you might use are\n", "[np.random.rand](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.random.rand.html#numpy.random.rand) (uniform),\n", "[np.random.randn](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.random.randn.html#numpy.random.randn) (normal),\n", "and [np.random.randint](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.random.randint.html#numpy.random.randint) (integers).\n", "All of these routines give you the option of generating an array of a specified shape."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["uniform_nums = np.random.rand(10)\n", "print(uniform_nums)\n", "print('')\n", "normal_nums = np.random.randn(3, 5)\n", "print(normal_nums)\n", "print('')\n", "integers = np.random.randint(0, 10, (4, 2))\n", "print(integers)\n", "print('')"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# What Else is There in Numpy\n", "There's so many more functions in Numpy!  Read documentation and **Google** things.  Someone probably asked your question on Stack Exchange or Stack Overflow already!"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This tutorial didn't really get in to any of the functions in \n", "[numpy.linalg](http://docs.scipy.org/doc/numpy/reference/routines.linalg.html).\n", "We'll see a lot of those functions in class."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# More Exercises:\n", "1. We'll do this one together...\n", "\n", "Let $B$ be a $4x4$ matrix and apply the following operations to it (in this order):\n", "    * Double the first column\n", "    * Halve the third row\n", "    * Add the third row to the first row\n", "    * Interchange the first and last columns\n", "    * Subtract the second row from each of the other rows\n", "    * Replace column 4 by column 3\n", "    * Delete the 1st column (so the matrix is now 4 by 3) - see np.delete"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["B = np.random.randint(-4,4,(4,4)).astype(float)\n", "print(B)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def my_function(B):\n", "    ..."]}, {"cell_type": "markdown", "metadata": {}, "source": ["2. Generate a 1D Numpy array of 20 integers in the range $[2, 12)$.  Count how many are greater than 8 without using a loop.  Also return an array of the same size that has the same values as the original array when they are greater than 8 and zero otherwise.\n", "\n", "\n", "3. Repeat the exercise with ''greater than'' replaced with ''greater than or equal to''"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["4. The Frobenius inner product of two matrices can be defined as $\\text{tr}(\\mathbf{A}^T\\mathbf{B})$ where ''tr'' refers to the [trace](https://en.wikipedia.org/wiki/Trace_(linear_algebra) (just the sum of the diagonals).  Write a function to compute the Frobenius inner product of two matrices.\n", "\n", "    * There's a numpy function called ``np.trace`` that makes this easy\n", "    * Try to do it without ``np.trace``.  You can use ``np.sum``, and a function called ``np.diag``"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def Frobenius(A,B):\n", "    ..."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["5. Generate a 10 by 10 matrix of normally distributed values.  Write a function that returns the column index of the column with the largest mean\n", "\n", "    * *Hint*: check out ``np.argmax``"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["A = ...\n", "\n", "def column_largest_mean(A):\n", "    ..."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["Work through these!\n", "* [100 Numpy Exercises](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md)\n", "* [101 Numpy Exercises for Data Analysis](https://www.machinelearningplus.com/python/101-numpy-exercises-python/)\n", "* [Numpy Exercises, Practice, Solution](https://www.w3resource.com/python-exercises/numpy/index.php)\n", "\n", "Come to office hours or ask on Piazza if you want clarification about what's happening in these questions"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["value\n", "1st option\n", "value\n"]}], "source": ["#@title String fields\n", "\n", "text = 'value' #@param {type:\"string\"}\n", "dropdown = '1st option' #@param [\"1st option\", \"2nd option\", \"3rd option\"]\n", "text_and_dropdown = 'value' #@param [\"1st option\", \"2nd option\", \"3rd option\"] {allow-input: true}\n", "\n", "print(text)\n", "print(dropdown)\n", "print(text_and_dropdown)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Datatypes\n", "\n", "# Integers, Floats, and Complex Numbers\n", "\n", "# Basic operators: \"+\", \"-\", \"*\", \"%\", \"**\", \"/\", \"//\"\n", "# Some operators only work with integers\n", "\n", "print(5 + 4) \n", "print(7 - 8)\n", "print(10 * 6)\n", "print(10 % 7)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Calculate 10 + 3.333\n", "\n", "# Calculate 4 raised to the fifth power\n", "\n", "# Calculate 10 float-divided by 6\n", "\n", "# Calculate 10 integer-divided by 6"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Booleans\n", "\n", "# Boolean literals: \"True\", \"False\"\n", "\n", "# Boolean operators: \"and\", \"(inclusive) or\", \"not\"\n", "print(True)\n", "print(True and False)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Print the result of ~T\n", "\n", "# Print the result of T \u2228 F\n", "\n", "# Print the result of \"~T \u2227 F\""]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": false}, "outputs": [], "source": ["# Strings\n", "\n", "print('abc')\n", "print(\"abc\")\n", "print('a \"quoted\" string' + \"another \\\"quoted string\\\" \" + \"can't\")\n", "print('abc' + 'a')\n", "\n", "print(\"\"\"\n", "         This\n", "         is\n", "         a \n", "         multiline\n", "         string.\"\"\")\n", "print(\"\"\"\n", "         So\n", "         is\n", "         this.\n", "         \"\"\")\n", "\n", "# Multiline strings are functionally multiline comments to\n", "print(\"Code I want to run\")\n", "\n", "'''\n", "print(\"Code I want not to run\")\n", "print(\"More code I want not to run\")\n", "'''"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Write two multi-line strings, concatenate them, and print the result"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Variables (weakly typed)\n", "\n", "x = 17\n", "print(x)\n", "\n", "x = x + 12\n", "print(x)\n", "\n", "y = x / 3.2\n", "print(y)\n", "\n", "z = 'grape'\n", "z = z + str(y)\n", "print(z)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Repeat the the string concatenation exercise above using variables to store each string"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Typecasting\n", "\n", "print(str(5))\n", "print(float(7))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Cast 7.3 to an int and print the result\n", "\n", "# Cast the string \"3.2\" to a float and print the result\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Print statements\n", "\n", "five = 5.333\n", "name = \"bob\"\n", "print(name)\n", "print(name + str(five))\n", "print(name, five)\n", "\n", "#Remove string formatting\n", "print(\"{}\".format(five))\n", "print(\"{}\".format(name))\n", "print(\"{} is {:.0f} years old.\\n\".format(name, five))\n", "print(\"Name:\\tAge:\\n{}\\t{:.1f}\\n\".format(name, five))\n", "\n", "# C-style print strings work as well\n", "print(\"Name:\\tAge:\\n%s\\t%.1f\\n\" % (name, five))\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Lists\n", "\n", "# Creating a list.\n", "\n", "a = [1, 2, 3, 4]\n", "b = ['hello', 1, 2.5]\n", "c = [[1, 2, 3],\n", "     [4, 5, 6]]\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create list 'f' containing the characters of your first name\n", "\n", "# Create a list 'l' containing the characters of your last name\n", "\n", "# Create a list 'name' that contains 'f' and 'l'"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Accessing a list.\n", "\n", "print(a[0])\n", "print(a[-1])  # last element\n", "print(c[0])\n", "print(c[0][2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Index into 'name' and extract the last character of your first name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# What happens if we access an element out of the bounds of our array?\n", "\n", "print(a[4])  # out of range"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# List slicing.\n", "\n", "print(a[1:3])\n", "print(a[1:])\n", "print(a[:2])"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Slice into 'name' and print the first two characters of your first name and last name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Editing a list.\n", "\n", "a.append(6)  # adds to the end\n", "print(a)\n", "a[4] = 5  # sets item at position 4\n", "print(a)\n", "a.remove(3)  # removes the first 3 in the list\n", "print(a)\n", "del a[2]  # removes the item at position 2\n", "print(a)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Append the first character of your last name to 'f' and print 'f'\n", "\n", "# Remove the character you added and print 'f' again"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Other list functions.\n", "\n", "print(a)\n", "print(len(a))\n", "print(a.index(1))  # the index of the first 3\n", "print(a.count(5))\n", "a.reverse()  # these are in-place operations\n", "print(a)\n", "a.sort()\n", "print(a)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Reverse 'f'\n", "\n", "# Sort 'l'\n", "\n", "# Count the occurrences of \"a\" in your last name"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Data is not necessarily copied\n", "\n", "a = [0, 1, 2, 3, 4]\n", "b = a\n", "b[2] = 6\n", "\n", "print(a)\n", "print(b)\n", "\n", "c = a.copy()\n", "c[4] = 7\n", "\n", "print(a)\n", "print(c)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Make a copy of 'l' called 'l_copy' and change the first element of \"l_copy\" to \"z\"\n", "\n", "# Print 'l' and 'l_copy'. Did 'l' change?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Tuples\n", "\n", "a = (1, 2, 3)\n", "b = (['hi', 3], 5, 7)\n", "print(a[2])\n", "x, y = ('diameter', 4 + 5)\n", "print(x)\n", "print(y)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create a tuple 'f_tup' with the characters of your first name.\n", "\n", "# Try to change the first entry of 'f_tub'. What happens?"]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": true}, "outputs": [], "source": ["a[2] = 5  # error: cannot change a tuple"]}, {"cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["{}\n", "{}\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good'}\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good', 'wisdom': 16}\n", "True\n", "16\n", "{'name': 'Monty', 'hitpoints': 23, 'strength': 12, 'alignment': 'lawful good', 'wisdom': 16, 'intelligence': 10, 'charisma': 14}\n", "{'name': 'Monty', 'hitpoints': 23, 'alignment': 'lawful good', 'wisdom': 16, 'intelligence': 10, 'charisma': 14}\n"]}], "source": ["# Dictionaries\n", "\n", "# Map an ID to a value\n", "\n", "# Create an empty dictionary\n", "d = {}\n", "print(d)\n", "d = dict()\n", "print(d)\n", "\n", "# Create a full dictionary\n", "dnd_character = {\"name\": \"Monty\", \"hitpoints\": 23, \"strength\": 12, \"alignment\": \"lawful good\"}\n", "print(dnd_character)\n", "\n", "# Add an entry\n", "dnd_character['wisdom'] = 16\n", "print(dnd_character)\n", "\n", "# Check if a key is in a dictionary\n", "print('wisdom' in dnd_character)\n", "\n", "# Lookup a value\n", "print(dnd_character['wisdom'])\n", "\n", "# Append/update dictionaries\n", "more_stats = {\"intelligence\": 10, \"charisma\": 14}\n", "dnd_character.update(more_stats)\n", "print(dnd_character)\n", "\n", "# Delete an entry\n", "del dnd_character['strength']\n", "print(dnd_character)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create a small dictionary that maps colors to an item you associate with that color\n", "# Experiment with the above operations on your dictionary."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Conditional statements\n", "\n", "if True:\n", "    print('True')\n", "    print('Also True')\n", "    \n", "if False:\n", "    print('False')\n", "    \n", "if True and False:\n", "    print('False')\n", "    print('Also False')\n", "    \n", "    \n", "    \n", "    print('Still False down here')\n", "print('Not in conditional')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Test if a key exists in your dictionary. If it does not exist then add the key and its value to the dictionary."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Be careful with whitespace\n", "\n", "if True:\n", "  print('True')\n", "    print('Tabbing is wrong')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Multi-way decisions\n", "\n", "if 5 > 4:\n", "    print('This will be printed')\n", "else:\n", "    print('This will not be printed')\n", "    \n", "if 5 > 8:\n", "    print('Not printed')\n", "elif 9 > 8:\n", "    print('Print this')\n", "else:\n", "    print('Not this')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Test if a key exists in your dictionary. \n", "# If it does not exist then add the key and its value to the dictionary.\n", "# Otherwise print its value.\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Nested conditions\n", "\n", "if 'abc' == 'def':\n", "    if 5 > 4 and 5 >= 5:\n", "        print('Not here')\n", "    else:\n", "        print('Definitely not here')\n", "else:\n", "    if not True:\n", "        print('False')\n", "    elif 6 != 6:\n", "        print('False')\n", "    else:\n", "        print('Print this')    "]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# For loops\n", "\n", "for name in ['Alice', 'Bob', 'Claire']:\n", "    print('Hello from {}'.format(name))\n", "    \n", "\n", "print('\\n\\n')\n", "\n", "loop_num = 0\n", "ice_creams = ('Chocolate', 'Vanilla', 'Strawberry')\n", "for flavor in ice_creams:\n", "    print('I want some {} ice cream'.format(flavor))\n", "    \n", "    loop_num += 1\n", "    print('We have looped {} times'.format(loop_num))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Iterate over 'f' and print each character"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Range Function\n", "\n", "print(range(3))\n", "print(range(2, 5))\n", "print(range(0, 20, 2))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["a = range(5)\n", "print(a[0])\n", "print(a[-1])\n", "a.append(5)  # error: range returns a generator, not a list"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Range and lists\n", "\n", "for i in range(3):\n", "    print(i)\n", "\n", "print('\\n\\n')\n", "\n", "# Get the product of numbers one through ten\n", "product = 1\n", "for i in range(1, 11):\n", "    product *= i\n", "print(product)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Repeat the above exercise, but instead \n", "# iterate over the range of the length of 'f'.\n", "# Index into 'f' to print each character.\n"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Nesting\n", "\n", "for i in range(3):\n", "    for j in range(2):\n", "        print((i,j))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# While loops\n", "\n", "val = 0\n", "while val < 5:\n", "    print('looping')\n", "    val += 1\n", "print(val)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Iterate until a convergence tolerance is met\n", "\n", "n = 0\n", "sol = 2.\n", "tol = 1e-5\n", "curr = 0\n", "while abs(sol - curr) > tol:\n", "    curr += 0.5**n\n", "    print(curr)\n", "    n += 1\n", "    \n", "print('Converged in {} iterations'.format(n))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Print the characters in 'f' again, but use a while-loop instead of a for-loop"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Functions\n", "\n", "def greet(name):\n", "    print('Hello {}! Welcome to CS 357!'.format(name))\n", "    \n", "greet('Alice')"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def convert(deg, celsius=True):\n", "    if celsius:\n", "        temp = (9 / 5.) * deg + 32\n", "    else:\n", "        temp = (5 / 9.) * (deg - 32)\n", "    \n", "print('It is {} degrees Fahrenheit outside.'.format(convert(0)))\n", "print('I happen to know that is {} degrees Celsius.'.format(convert(32, False)))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# What went wrong?  We forgot to return the value we wanted from the function.\n", "\n", "def convert(deg, celsius=True):\n", "    if celsius:\n", "        temp = (9 / 5.) * deg + 32\n", "    else:\n", "        temp = (5 / 9.) * (deg - 32)\n", "    \n", "    return temp\n", "\n", "    \n", "print('It is {} degrees Fahrenheit outside.'.format(convert(0)))\n", "print('I happen to know that is {} degrees Celsius.'.format(convert(32, False)))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["#Try it:\n", "\n", "# Write a function which takes a 24-hour time as an integer\n", "# and returns the equivalent 12-hour time as a string.\n", "# The first two digits are the hour and the last two digits\n", "# are the minutes"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Math operations \n", "\n", "import numpy as np\n", "print(np.sin(2*np.pi))\n", "print(np.log(np.e))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Calculate cos(sqrt(pi*e))"]}, {"cell_type": "code", "execution_count": null, "metadata": {"scrolled": false}, "outputs": [], "source": ["# Need to figure out how to use a function?\n", "\n", "help(np.log)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["np.log?"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["# Matplotlib\n", "As before, the first thing we do is import necessary packages"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": ["#%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This notebook will go through a lot of examples, but matplotlib\n", "has pretty good [documentation](http://matplotlib.org/api/pyplot_api.html) and a \n", "[gallery of examples](http://matplotlib.org/1.5.1/gallery.html).  They also\n", "have a [pyplot tutorial](http://matplotlib.org/users/pyplot_tutorial.html)\n", "that might be helpful in addition to the examples shown here.\n", "\n", "Often, it is helpful to find an example in the gallery of what you are looking for\n", "and then view the code for how to create that plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Simple plotting"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What about just a simple plot?\n", "\n", "Simple plot of some random numbers.  Note that range of x values is assumed from 0 to n-1\n", "if no range is specified."]}, {"cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f342c24a8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["yvals = np.random.randint(0, 50, 10)\n", "plt.plot(yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Create 'xpts', a list or Numpy array containing equispaced values of sin(x) on the interval [0, 2*pi]\n", "# Create a list 's' the values of sin(x) at each point in 'xpts'\n", "# Plot 's'"]}, {"cell_type": "markdown", "metadata": {}, "source": ["What if we have x-values we want to provide too?"]}, {"cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f342235f8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals = np.arange(2003,2013,1)\n", "yvals = [62,112,116,114,119,127,103,126,105,139]\n", "plt.plot(xvals, yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Plot 's' again, but this time with 'xpts' as the 'x-axis'"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Note that the arguments could be arrays or lists, it didn't matter."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Adding titles and labels\n", "\n", "Those previous graphs had no labels.  Good plots have axes labels and titles, so how do we add them?"]}, {"cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [{"data": {"image/png": "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\nteHEYGZmbfx/k4utRLqSAXcAAAAASUVORK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f34199400>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals, yvals)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Add axis labels to your sine plot"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Changing line style, color\n", "\n", "That plot still doesn't look great, how can I make it look better?\n", "\n", "You can specify the line color, style, etc. that you want.\n", "\n", "This plot changes the line color to red, adds circle markers at the data points,\n", "and changes the line width to be thicker."]}, {"cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f34100550>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals, yvals, 'ro-', linewidth=2)\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Change your sine plot so that the line is green and the data points are marked"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Multiple lines on a single plot\n", "\n", "If you do have multiple lines on one plot, it is always good to have a legend as well.\n", "To add a legend, specify the label='some label' when plotting each of the data and then\n", "call plt.legend().  You can specify where the legend is placed by specifying a location\n", "(see matplotlib's documentation for location details)."]}, {"cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7f2f3413a208>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals2 = np.arange(2005,2013,1)\n", "yvals2 = [10,81,119,102,141,83,120,108]\n", "\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title('RBIs vs Year for Miguel Cabrera and Prince Fielder')\n", "\n", "plt.plot(xvals, yvals, 'ro-', label='Miguel Cabrera')\n", "plt.plot(xvals2, yvals2, 'go-', label='Prince Fielder')\n", "plt.legend(loc=2)\n", "\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Calculate cos(x) for all 'xpts' and store the results in a list or Numpy array 'c'.\n", "# Plot 'c' vs. 'xpts' and 's' vs. 'xpts' in the same plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Examples of More Line Styles\n", "We've seen how to change line thickness, line style, and line color.  There are quite a few options for line styles, colors, etc.\n", "\n", "For example, sometimes it is helpful to plot just markers (no lines connecting them).  Or, you might want to use a dashed line instead of a solid line or change to a differnet shaped marker.  This example just shows a couple more options.  There are tons of options available though -- see matplotlib's documentation or gallery."]}, {"cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [{"data": {"image/png": "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\nlblz57Jnzx6mT59OSkoK69aFdnTrjIyMIlnHGBOcUpEYNm3YwFuXX87D48YRn5DAw+PG8dbllwf9\n436s6/u64447GD16dPbz0aNH07NnT79lclbxvPTSS9SvX5+GDRsyYsQIoqKiWL/euaVyp06d+Oij\nj/y2d+GF/9znfNWqVVxxxRXUqlWLli1bMnHixKDifPXVV6latSpjxoyhUaNGADRo0IDXX3+dM844\nA4AHHniAxo0bU61aNc477zxmz57tt41Dhw5x2223UbVqVdq0acOSJUuy50VHR/PSSy9x9tlnU6VK\nFTIzM9mxYwc33XQTtWvXplmzZrz11lvZy8fHx3PzzTdzxx13UL16dUaPHs38+fM5//zzqVGjBg0a\nNKB///6kp6cH9fqMMXkrFYlh1ODBxK9bR2X3eWUgft06Rg0eXCTr+2rfvj379u1j9erVZGZmMmHC\nBGJjY/PsYz9t2jTeeOMNZs6cydq1a0lISAhYusiaf/DgQa644gpiY2PZtWsX48ePp1+/fqxatSpg\nnD/88AM33HBDvsu0bduWJUuWkJyczO23387NN9/MkSNHsudPnjyZW2+9leTkZLp168b111/vd6Y/\nfvx4vv32W1JSUhARrr32Wlq1asWOHTv44Ycf+M9//sP06dP9tnfLLbeQkpJC9+7dKVu2LG+88QZJ\nSUn89ttvzJw5k7fffjvgazPG5K9UJIbMbduyf9SzVAYyt28vkvVzyio1TJ8+nZYtW1K/fv08l504\ncSK9evWiRYsWVKhQgaFDhwZ9odaUKVOIjo6mR48eiAhnn302N954Y1Clht27d1OvXr18l7n99tup\nXr06UVFRPPjgg6SmprJ69ers+a1bt6Zr166UKVOGgQMHcvjwYebMmZM9f8CAAdSvX5/y5cszf/58\ndu3axRNPPEGZMmVo2rQpd911F+PHj89evkOHDlx77bUAlC9fnlatWtG2bVtEhMaNG9O3b19mzZoV\n1LExxuStRA2JkZeoBg04AH4/7geAqHx+kEO5fk6xsbFcdNFFbNiwgR49euS77Pbt2znvvPOyn2dV\n6wRj06ZNzJkzh5o1awLOPSwyMjIC7hOgVq1a7NixI99lXnnlFT766KPs5fbt28euXbuy5/vGKiI0\nbNiQ7T7JtGHDhn6xbtu2zS/WzMxMLrrooly3B/Dnn38ycOBAfv/9dw4dOkR6ejqtW7fGGHNsSkWJ\nIW7YMIY0a8YB9/kBYEizZsQNG1Yk6+fUuHFjoqOj+fbbbwNW19SrV4+tW7dmP8/quZSlcuXKHDx4\nMPv5zp07sx83atSImJgYkpKSSEpKIjk5mb179/Lf//43YIyXXXYZX375ZZ7zZ8+ezcsvv8ykSZNI\nTk4mOTmZqlWr+pVmtmz55xbeqsrWrVtp0OCf23j7Vok1atSIk046yS/WPXv28L///S/X5cHp1tuy\nZUvWrVtHSkoKzz77rA17YUwIlIrE0CQ6mv7Tp/NK9+4M6dSJV7p3p//06TSJji6S9XPz0UcfMXPm\nTCpWrJjvcrfccgsjR45k1apVHDx4kGeeecbvB/Kcc87hiy++4NChQ6xdu5YRI0Zkz7vmmmtYs2YN\nY8eOJT09nbS0NH7//Xe/6p68DBw4kL1799KzZ8/sZLRt2zYeeughli1bxr59+yhXrhy1atXiyJEj\nPP300+zbt89vGwsWLOCrr74iIyOD119/nQoVKtCuXbtc99e2bVuOP/54XnrpJQ4fPkxGRgbLly/n\n999/zzPGffv2UbVqVSpVqsSqVat45513Ar4uY0xgpSIxgPPjPmTsWOJnzmTI2LEF/lE/1vXB/4w3\nOjqac889N9d5vq666iruv/9+OnXqRPPmzenQoQPg1LEDPPjgg5QrV466devSq1cvYmNjs9etUqUK\n33//PePHj6d+/frUr1+fQYMGkZqaGjDWGjVq8Ouvv1KuXDnatWtHtWrVuPzyy6levTonn3wyV155\nJVdeeSXNmzcnOjqaSpUqHVXVc9111zFhwgRq1KjBuHHj+OKLLyhTpkyurzcqKoopU6awaNEioqOj\nqV27Nn369GHv3r15xvjKK68wbtw4qlatyt13381tt90W8HUZYwKz0VWLmVWrVnHmmWeSmppKVFSp\nyevHrDR8NowJxEZXLUG++uorjhw5QnJyMo8++ihdunSxpGCMCZuwlhhEZARwDZCoqmflmPcQ8DJw\ngqomudPeBDrjtO/GqeqiPLZbqkoMnTt35rfffqNs2bLExMQwfPhw6tSp43VYxUpJ/WwUhb6P9mVN\n4pqjpjev05z3X3zfg4hMYUXKHdxGAm8BH/tOFJGGwOXAJp9pnYFmqnqKiLQD3gXahzm+YuHbb7/1\nOgRTiq1JXMOs6FyuDyn4hf+mmAhrfYSqzgaSc5n1OvBIjmnX4SYQVZ0LVBMROy02xpgiVuQV1SLS\n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\nRK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a50f400>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["xvals2 = np.arange(2005,2013,1)\n", "yvals2 = [10,81,119,102,141,83,120,108]\n", "\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title('RBIs vs Year for Miguel Cabrera and Prince Fielder')\n", "\n", "plt.plot(xvals, yvals, 'ro', label='Miguel Cabrera')\n", "plt.plot(xvals2, yvals2, 'gs--', label='Prince Fielder')\n", "plt.legend(loc=2)\n", "\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Logarithmic Axis Scales\n", "Options available for doing log-log and semilog axis scales available.\n", "\n", "This example also shows how to make separate figures -- call plt.figure() before\n", "plotting the data you want on each plot."]}, {"cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [{"data": {"image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a424048>"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a476dd8>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["a = np.arange(10)\n", "\n", "plt.figure()\n", "xs = 10**(2*a)\n", "ys = 10**a\n", "plt.loglog(xs, ys, 'bo-')\n", "plt.title('log scale on both x-axis and y-axis')\n", "plt.show()\n", "\n", "# The same data plotted with plt.plot()\n", "plt.figure()\n", "plt.plot(xs, ys, 'bo-')\n", "plt.title('linear scale on x-axis and y-axis')\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["The same exact data is plotted in both of the above, just using different\n", "scales for the axes.  Note we can only really see a couple of the data points\n", "in the second plot."]}, {"cell_type": "markdown", "metadata": {}, "source": ["We can also do log scaling on only one axis (x or y)."]}, {"cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a470710>"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"image/png": "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\nTkSuQmCC\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a5a9358>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["a = np.arange(10)\n", "\n", "plt.figure()\n", "xs = 10**(0.25*a)\n", "ys = a\n", "plt.semilogx(xs, ys, 'bo-')\n", "plt.show()\n", "\n", "plt.figure()\n", "xs = a\n", "ys = 10**(0.5*a)\n", "plt.semilogy(xs, ys, 'bo-')\n", "plt.show()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Note, these were straight lines as plotted, but would have looked very different\n", "on an ordinary plot (using plt.plot())  "]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it:\n", "\n", "# Plot e^sin(x) at each value in 'xpts' with a log scale on the y-axis."]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Some Fancier Options"]}, {"cell_type": "markdown", "metadata": {}, "source": ["How to add multiple subplots on one figure (you could also do two separate plots)"]}, {"cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<matplotlib.figure.Figure at 0x7feb1a444080>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["plt.figure(1)\n", "\n", "plt.subplot(211)\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Miguel Cabrera's RBIs vs Year\")\n", "plt.plot(xvals,yvals,'ro-')\n", "\n", "plt.subplot(212)\n", "plt.xlabel('Year')\n", "plt.ylabel('RBIs')\n", "plt.title(\"Prince Fielder's RBIs vs Year\")\n", "plt.plot(xvals2,yvals2,'go-')\n", "\n", "plt.tight_layout()\n", "plt.show()"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Try it\n", "\n", "# Modify your sine and cosine plot so that each line is plotted in a separate subplot"]}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6"}}, "nbformat": 4, "nbformat_minor": 1}